Любой способ обнаружить iPad или iPhone в беспроводной сети? Bonjour?
Я пытаюсь обнаружить устройства 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 ответа
Используйте порт 62078
Самый надежный индикатор, который я видел, - можно ли подключиться к IP-порту 62078.
Порт 62078 используется для службы "iphone-sync", и я не думаю, что MacBook использует его. Этот порт всегда открыт для iPhone и iPad в нашей (очень маленькой) сети.
Возможно (но не вероятно) есть сообщения, которые вы можете отправить в порт, чтобы узнать подробности...
Я думаю, что официальный список назначений портов в xml здесь, хотя он не работал для меня сейчас: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml
MAC-адрес
Теоретически, 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 Bonjour использует многоадресную DNS (mDNS), работающую на UDP-порту 5353, и отправляет по этим зарезервированным групповым адресам: групповой адрес IPv4 - 224.0.0.251, групповой адрес IPv6 - ссылка FF02::FB -.
Это поможет получить push-уведомление, когда устройства Apple подключаются к локальной сети (link-local), прослушивая многоадресные сообщения по протоколу 5353 UDP. Возможно, понюхать пакет и посмотреть, есть ли в нем какая-то дополнительная информация:)
Хотя я предполагаю, что Bonjour API также позволяет увидеть это...
Вы также можете использовать утилиту аэропорта, чтобы сделать это вручную:
1) Откройте AirportUtility 2) Перейдите в раздел "Беспроводные клиенты" (наведите курсор мыши на стрелку и щелкните по нему). 3) Перейдите в раздел "Клиенты DHCP", и вы увидите iPad,iPhone, имя компьютера и т. Д..... в качестве столбца Client ID.,