любой способ обнаружить iPad или iPhone в беспроводной сети? Bonjour? - PullRequest
14 голосов
/ 24 сентября 2011

Я пытаюсь обнаружить устройства Apple, подключенные к беспроводной сети. Это относительно просто с использованием Bonjour, однако я также пытаюсь определить, какое это устройство. Например, MacBook Air, MacBook Pro, MacPro, iPhone, iPod или iPad.

Я обнаружил, что запросы Bonjour к MacBook и MacPros содержат ответ «ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ» на запрос, который включает модель:

;; ADDITIONAL SECTION:
Q9550._device-info._tcp.local. 10 IN    TXT "model=MacPro3,1"

и

;; ADDITIONAL SECTION:
Air._device-info._tcp.local. 10 IN  TXT "model=MacBookAir4,2"

После тестирования iPhone (3GS и 4), iPod touch и iPad2 все iDevices отвечают только своим именем:

;; ANSWER SECTION:
111.1.168.192.in-addr.arpa. 10  IN  PTR gmPad2.local.

Понятно, что название может не отражать устройство. Поэтому я не хотел бы пытаться экстраполировать тип устройства по названию. Кто-нибудь знает какие-либо другие способы обнаружения типов iDevice?


Редактировать: просто для ясности, я использую команду: dig @ 224.0.0.251 -p5353 -x 192.168.1.111 ... с заменой IP-адреса устройства Apple

Ответы [ 2 ]

9 голосов
/ 04 октября 2011

Использовать порт 62078

Самый надежный индикатор, который я видел, - можно ли подключиться к IP-порту 62078.

Порт 62078 используется для службы синхронизации iphone, и я не думаю, что MacBook использует его. Этот порт всегда открыт для iPhone и iPad в нашей (очень маленькой) сети.

Возможно (но не вероятно) есть сообщения, которые вы можете отправить в порт, чтобы узнать подробности ...

Я думаю, что официальный список назначений портов в xml здесь, хотя он не работал для меня сейчас: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml

MAC-адрес

Теоретически МАС-адреса могут помочь - но, вероятно, не будут использоваться, если вы не найдете где-нибудь надежный список диапазонов (например, фирма по обеспечению безопасности сети или поставщик оборудования). MAC-адреса зависят от фактического использования микросхем (или прошитого MAC-адреса). База данных находится на уровне организации (хотя организации иногда предпочитают использовать определенные диапазоны для конкретных устройств).

http://standards.ieee.org/develop/regauth/oui/public.html позволяет вам загрузить базу данных «Организационно уникальных идентификаторов», или вы можете найти «Apple», или первые три байта MAC-адреса, например, 00264A.

Как ни странно, поиск MAC не работает ... Первые три цифры моего iPad MAC - 28-68-BA, и это ничего не дает.

Пользовательский агент

Вероятно, бесполезно, но если вы можете наблюдать за сетевым трафиком или иметь http-прокси, то строка user-agent может помочь (см. http://developer.apple.com/library/IOS/documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3).

Редактировать (добавлено):

Протокол Apple Bonjour опирается на многоадресный DNS (mDNS), работающий на UDP-порту 5353, и отправляет на эти зарезервированные групповые адреса: групповой адрес IPv4 - 224.0.0.251, групповой адрес IPv6 - FF02 :: FB - ссылка .

Это поможет получить push-уведомление, когда устройства Apple подключаются к локальной сети (link-local), прослушивая многоадресные сообщения по 5353 UDP. Возможно, понюхать пакет и посмотреть, есть ли в нем какая-либо дополнительная информация:)

Хотя я предполагаю, что Bonjour API также позволяет видеть это ...

0 голосов
/ 05 октября 2011

Вы также можете использовать утилиту аэропорта, чтобы сделать это вручную:

1) открыть AirportUtility 2) Перейти к «Беспроводным клиентам» (наведите курсор мыши на стрелку и щелкнуть ее) 3) Перейти к DHCP-клиентам,и вы увидите iPad, iPhone, имя компьютера и т. д. в столбце «Идентификатор клиента».

...