любой способ обнаружения 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 клиента.