Ваш anonyminity не гарантируется с Почтовым ящиком или PMB (Личный почтовый ящик через частную компанию). Под 39 CFR 265.6 (d), человек может запросить имя и адрес владельца ПОЧТОВОГО ЯЩИКА или PMB в целях судебного иска. Я услышал о (но не знайте, обрабатывают ли его общее) люди и группы, злоупотребляющие Судом мелких тяжб, для получения доступа к этой информации и затем использующий его в целях другой процесс сервиса (который недопустим).
Далее, если клиент будет использовать Фиктивное Название компании или создавать Корпорацию, то большинство состояний свободно предоставит информацию о владельце по Интернету или телефону.
Если Ваш клиент будет жить в сутяжнической области (т.е. много сумасшедших активистских групп, которым нравится оспаривать эти виды в суде компаний из существования посредством сборов адвоката), то правовая система вызовет много головных болей.
Но даже игнорируя авеню судебного процесса, существует много Публичных актов, которые доступны в Интернете. Будьте осторожны относительно того, какая информация регистрируется и могут ли они перекрестно сослаться на данные для отступания информации. Довольно легко разыскать связанные стороны, если публичный акт использует подобный адрес или номер телефона к доменному имени и т.д.
Для USB-устройства можно использовать lsusb
и ищите Устройство Интерфейса пользователя (интерфейсный класс 3) с протоколом клавиатуры (интерфейсный протокол 1), например.
$ lsusb -v
... loads of stuff deleted ...
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
... loads of stuff deleted ...
Кроме того, можно позволить udev
помогите Вам. Перечислите устройства под /dev/input/by-path/
и устройства клавиатуры заканчиваются в -kdb
(по крайней мере, в Ubuntu, где правила udev указывают его), например.
$ ls -l /dev/input/by-path/*-kbd
lrwxrwxrwx 1 root root 9 2010-03-25 09:14 /dev/input/by-path/pci-0000:00:1a.2-usb-0:1:1.0-event-kbd -> ../event4
$ ls -l /dev/input/by-path/*-kbd
lrwxrwxrwx 1 root root 9 2009-08-29 09:46 /dev/input/by-path/platform-i8042-serio-0-event-kbd -> ../event1
Один путь состоял бы в том, чтобы сделать это:
dmesg | grep keyboard
Вы могли бы также смочь использовать Выскочку и udev, чтобы обнаружить и действовать на присутствие клавиатуры.
Для USB можно искать/sys/bus/usb/devices устройство с конфигурацией с интерфейсом с классом HID (0x03) и протокол Клавиатура (0x01).
Сценарий Bash:
#!/bin/bash
for dev in /sys/bus/usb/devices/*-*:*
do
if [ -f $dev/bInterfaceClass ]
then
if [[ "$(cat $dev/bInterfaceClass)" == "03" && "$(cat $dev/bInterfaceProtocol)" == "01" ]]
then
echo "Keyboard detected: $dev"
fi
fi
done
Для USB-клавиатур я обычно нахожу клавиатуру, просто просматривая вывод «lsusb -v» по слову «Keyboard»:
lsusb -v 2>/dev/null | egrep '(^Bus|Keyboard)' | grep -B1 Keyboard
Пример вывода:
Bus 001 Device 004: ID 413c:2006 Dell Computer Corp.
bInterfaceProtocol 1 Keyboard
Более общий метод заключается в поиске / sys / bus для любого устройства, которое одновременно является bInterfaceClass 03 и bInterfaceProtocol 01. Поскольку вам необходимо обнаруживать устройства, отличные от USB,и вы хотите использовать вывод в сценарии, этот метод, вероятно, подойдет вам лучше:
grep -l 03 /sys/bus/*/*/*/bInterfaceClass |
sed 's/Class$/Protocol/' |
xargs grep -l 01 |
xargs dirname
Пример вывода:
/sys/bus/usb/devices/1-4.1:1.0
Предостережение: я не могу найти клавиатуру PS / 2 для тестирования этого сценария. Поскольку этому потоку уже более семи лет, я предполагаю, что автор исходного вопроса уже давно ушел и больше не нуждается в обнаружении PS / 2. В любом случае я оставлю этот ответ в надежде, что кто-то другой сочтет его полезным, но имейте в виду, что я не тестировал его с устройствами, отличными от USB.
Клавиатуры PS / 2 перечислены среди устройств / sys / class / input
. Там также могут присутствовать USB-клавиатуры, потому что указанная ниже мышь - это USB-мышь:
$ grep "" /sys/class/input/*/name
/sys/class/input/input0/name:Power Button
/sys/class/input/input1/name:Power Button
/sys/class/input/input2/name:AT Translated Set 2 keyboard
/sys/class/input/input3/name:Microsoft Comfort Mouse 6000
$ grep keyboard /sys/class/input/*/name
/sys/class/input/input2/name
Еще одно открытие заключается в том, что каталоги клавиатуры содержат подкаталоги для статусных клавиш:
$ ls -d /sys/class/input/*/*::capslock
/sys/class/input/input2/input2::capslock