¿Alguna forma de detectar iPads o iPhones en la networking inalámbrica? bonjour

Estoy tratando de detectar dispositivos Apple conectados a una networking inalámbrica. Esto es relativamente simple usando Bonjour, sin embargo, también estoy tratando de detectar qué tipo de dispositivo es. Como, un MacBook Air, un MacBook Pro, un MacPro, un iPhone, iPod o un iPad.

He encontrado que las requestes de Bonjour a MacBook y MacPros incluyen una respuesta de "SECCIÓN ADICIONAL" a la consulta que incluye el model:

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

y

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

Desde probar un iPhone (3GS y 4), un iPod touch y un iPad2, todos los iDevices solo responden con su nombre:

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

Claramente, el nombre puede no reflejar el dispositivo. Por lo tanto, no quisiera intentar extrapolar el tipo de dispositivo del nombre. ¿Alguien sabe alguna otra forma de detectar types de iDevice?


Editar: solo para que quede claro, el command que estoy usando es: dig @ 224.0.0.251 -p5353 -x 192.168.1.111 … sustituyendo la dirección IP del dispositivo Apple

Use el puerto 62078

El indicador más confiable que he visto es si puede conectarse al puerto IP 62078.

El puerto 62078 se usa para el service "iphone-sync", y no creo que los MacBooks lo usen. Este puerto siempre parece estar abierto para los iPhones y iPads en nuestra (muy pequeña) networking.

Posiblemente (pero no probablemente) hay posts que puede enviar al puerto para search más detalles …

Creo que la list oficial de xml de asignaciones de puertos está aquí, aunque no estaba funcionando para mí ahora: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers .xml

Dirección MAC

En teoría, las direcciones MAC pueden ayudar, pero probablemente no sean de mucha utilidad a less que pueda encontrar en algún lugar que mantenga una list confiable de ranges (por ejemplo, una firma de security de networking o proveedor de hardware). Las direcciones MAC dependen de los chips reales utilizados (o de un MAC flasheado). La database se encuentra a nivel de organización (aunque las organizaciones a veces optan por utilizar ranges específicos para dispositivos específicos).

http://standards.ieee.org/develop/regauth/oui/public.html le permite download la database de "Organizationally Unique Identifiers", o puede search "Apple", o los primeros tres bytes de una dirección MAC por ejemplo, 00264A.

Anecdóticamente, la búsqueda MAC no funciona … Los primeros tres dígitos de mi iPad MAC son 28-68-BA y eso no tiene nada.

Agente de usuario

Probablemente no sea útil, pero si puede ver el tráfico de networking o tener un proxy http, entonces la cadena user-agent podría ayudar (consulte http://developer.apple.com/library/IOS/documentation/AppleApplications/Reference/SafariWebContent/ OptimizaciónparaSafarioniPhone / OptimizingforSafarioniPhone.html # // apple_ref / doc / uid / TP40006517-SW3 ).

Editar (agregado):

El protocolo Bonjour de Apple depende del DNS de multidifusión (mDNS) que opera en el puerto UDP 5353 y envía a estas direcciones de grupo reservadas: Dirección de grupo IPv4 – 224.0.0.251, Dirección de grupo IPv6 – FF02 :: FB – reference .

Esto ayudaría a get notifications push cuando los dispositivos Apple se conectan a una networking local (link-local) al escuchar posts de multidifusión en 5353 UDP. Tal vez huela el package y vea si tiene alguna información adicional 🙂

Aunque supongo que Bonjour API también permite ver esto …

También puede usted la utilidad del aeropuerto para hacer esto manualmente:

1) abra AirportUtility 2) Vaya a "Clientes inalámbricos" (desplace el mouse por la flecha y click él) 3) Vaya a Clientes DHCP, y verá el iPad, iPhone, nombre de la computadora, etc. … como la columna ID de cliente .