любой способ обнаружения iPads или iPhones в беспроводной сети? Бонжур?

Я пытаюсь обнаружить устройства 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?


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

2 ответов


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

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

порт 62078 используется для службы "iphone-sync", и я не думаю, что MacBooks используют его. Этот порт всегда кажется открытым для iPhones и iPads в нашей (очень маленькой) сети.

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

Я думаю, официальный 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.

Anecdotally, поиск 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).

изменить (добавлено):

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

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

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


вы также можете использовать утилиту Airport для этого вручную :

1) открытый AirportUtility 2) Перейдите в раздел " беспроводные клиенты "(наведите курсор мыши на стрелку и нажмите на нее) 3) перейдите к DHCP-клиентам,и вы увидите iPad, iPhone, имя компьютера и т. д.... как столбец ID клиента.