2011-09-24 16 views
13

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

he encontrado que Bonjour peticiones al MacBook y macpros incluyen una respuesta "sección adicional" a la consulta que incluye el modelo:

;; 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" 

De probando 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 me gustaría tratar de extrapolar el tipo de dispositivo del nombre. ¿Alguien conoce otras formas de detectar los tipos de iDevice?


Editar: para ser claros, el comando que estoy utilizando es: dig @ 224.0.0.251 -p5353 -x 192.168.1.111 ... sustituyendo la dirección IP del dispositivo de Apple

+2

Me pregunto si podría haber una forma de hacerlo con direcciones mac. Ciertamente, hay listas de los prefijos de los proveedores, lo que le daría Apple Inc (lo siento menos útil que MDNS), pero me pregunto si podría encontrar o crear una lista más detallada para ayudarlo a llegar al nivel del dispositivo. – digitalsean

+1

Si no necesita información 100% confiable, entonces usar el nombre no parece una mala idea. Por lo que he visto, el 99% de los usuarios mantienen el nombre del dispositivo "iPad/iPod/iPhone del usuario", etc. – Danra

+0

use + short para escupir solo la ID del cliente sin otra verborrea, como en: dig + short -x 192.168. 1.2 @ 224.0.0.251 -p 5353 –

Respuesta

8

Uso puerto 62078

el indicador más fiable que he visto es si se puede conectar con el puerto IP 62078.

puerto 62078 se utiliza para el servicio "iPhone-sync", y no creo que lo utilizan MacBooks . Este puerto siempre parece estar abierto para iPhones y iPads en nuestra (muy pequeña) red.

Posiblemente (pero no probable) que hay mensajes que puede enviar al puerto para olfatear más detalles ...

Creo que la lista oficial xml de asignaciones de puertos está aquí, a pesar de que no estaba trabajando para me hace un momento: dirección http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml

MAC

En teoría las direcciones MAC podrían ayudar - pero probablemente no mucho uso a menos que pueda encontrar un sitio que mantiene una lista fiable de rangos (por ejemplo, una empresa de seguridad de red, o har proveedor de dware). Las direcciones MAC dependen de los chips reales utilizados (o un MAC flasheado). La base de datos está en el nivel de la organización (aunque las organizaciones algunas veces eligen usar rangos específicos para dispositivos específicos).

http://standards.ieee.org/develop/regauth/oui/public.html le permite descargar la base de datos de "Identificadores únicos de la organización", o puede buscar "Apple" o los primeros tres bytes de una dirección MAC, p. 00264A.

Como anécdota, la búsqueda MAC no funciona ... Los primeros tres dígitos de mi iPad MAC son 28-68-BA y no se obtiene nada.

agente de usuario

Probablemente no es útil, pero si se puede ver el tráfico de la red o tener un proxy HTTP, entonces la cadena de agente de usuario podría ayudar (ver http://developer.apple.com/library/IOS/documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3).

Editar (añadió):

protocolo Bonjour de Apple se basa en Multicast DNS (mDNS) que operan en el puerto UDP 5353 y envía a estas direcciones de grupo reservados: Grupo de direcciones IPv4 - 224.0.0.251, Grupo de dirección IPv6 - FF02: : FB - reference.

Esto ayudaría a obtener notificación push cuando los dispositivos Apple se conectan a una red local (link-local) escuchando mensajes de multidifusión en 5353 UDP. Tal vez oler el paquete y ver si tiene cualquier información adicional en ella :)

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

-1

También puede hacer que la utilidad aeropuerto para hacerlo de forma manual:

1) AirportUtility abierta 2) Ir a "clientes inalámbricos" (el ratón por la flecha y haga clic en él) 3) Ir a los clientes DHCP, y verá iPad, iPhone, nombre del equipo, etc ... como la columna de ID de cliente.

Cuestiones relacionadas