Подтвердить что ты не робот

Любым способом обнаружения iPads или iPhones в беспроводной сети? 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

4b9b3361

Ответ 1

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

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

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

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

Я думаю, что официальный 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, то строка пользовательского агента может помочь (см. http://developer.apple.com/library/IOS/documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3).

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

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

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

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

Ответ 2

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

1) открыть "Аэрофлот" 2) Перейдите к разделу "Беспроводные клиенты" (наведите указатель мыши на стрелку и щелкните по ней) 3) Перейдите к клиентам DHCP, и вы увидите iPad, iPhone, имя компьютера и т.д. В качестве столбца идентификатора клиента.