ver - ios significado
descubrir el nombre del dispositivo iOS usando mDNS (1)
Me doy cuenta de que algunas de las mejores aplicaciones de descubrimiento de redes como Fing para iOS e iNet para Mac pueden descubrir el nombre de dispositivo de dispositivos iOS y dispositivos Mac incluso cuando no están anunciando servicios de Bonjour como iTunes Wi-Fi Sync. ¿Cómo se hace esto? Soy consciente de cómo hacer una consulta inversa de mDNS https://serverfault.com/questions/143184/how-do-i-get-the-machine-name-from-an-ip-via-multicast-dns . Pero si bien una búsqueda inversa de mDNS (al menos como la que realizó el comando dig -x the.ip @224.0.0.251 -p 5353
) funcionará contra una Mac que, de lo contrario, no emitirá ningún servicio de Bonjour, no funciona a menos que Wi -Fi Sync se está ejecutando o algún otro servicio de Bonjour en un dispositivo iOS. No estoy seguro de cómo obtener el nombre de otra manera, pero estas aplicaciones lo obtienen de manera confiable. Utilicé Wireshark mientras que iNet estaba descubriendo y solo veo consultas de ICMP y NetBios, todas las cuales devuelven 0 respuestas.
También tenga en cuenta que ya tengo la dirección IP del dispositivo haciendo un ping de transmisión y luego analizando la tabla ARP. Quiero descubrir cuáles de los dispositivos descubiertos de esta forma son dispositivos iOS al obtener el nombre de su dispositivo y buscar la cadena "iPhone" o "iPad".
También tenga en cuenta que el sitio web de la aplicación iNet proporciona lo siguiente sobre cómo realizan búsquedas de IP inversas. Entiendo que esto significa que hacen una búsqueda DNS inversa y una búsqueda mDNS inversa para cada IP.
Reverse IP lookups (hostnames) are performed as unicast and multicast queries for every IP found.
- http://www.bananaglue.de/inet/index_e.php
¿Has probado la herramienta de línea de comandos dns-sd?
Si escribe dns-sd -B _services._dns-sd._udp
para obtener todos los servicios disponibles, verá que hay un servicio _whats-my-name
disponible.
$ dns-sd -B _services._dns-sd._udp
Browsing for _services._dns-sd._udp
DATE: ---Tue 16 Dec 2014---
14:38:30.746 ...STARTING...
Timestamp A/R Flags if Domain Service Type Instance Name
14:38:30.747 Add 3 5 . _tcp.local. _nfs
14:38:30.747 Add 3 5 . _tcp.local. _afpovertcp
14:38:30.747 Add 3 5 . _tcp.local. _smb
14:38:30.747 Add 2 0 . _tcp.local. _whats-my-name
14:38:31.330 Add 3 10 . _tcp.local. _nfs
14:38:31.330 Add 3 10 . _tcp.local. _afpovertcp
14:38:31.330 Add 2 10 . _tcp.local. _smb
después de eso podemos consultar por este servicio que produce lo siguiente:
$ dns-sd -B _whats-my-name._tcp
Browsing for _whats-my-name._tcp
DATE: ---Tue 16 Dec 2014---
14:40:20.738 ...STARTING...
Timestamp A/R Flags if Domain Service Type Instance Name
14:40:20.742 Add 2 0 local. _whats-my-name._tcp. Blub MacBook Pro
El Instance Name
es la parte interesante aquí. Asumo que el servicio _whats-my-name
está disponible en todas las computadoras que ejecutan bonjour. Tal vez pueda encontrar las consultas enviadas y reconstruirlas con herramientas básicas de bash si no puede acceder a dns-sd en todos los casos. Más sobre usted no debe usar dns-sd en su script. En su lugar, debe utilizar una implementación específica del protocolo para su lenguaje de programación.
Nota: tenga en cuenta que el nombre del dispositivo puede no ser confiable para detectar con qué dispositivo se está comunicando
Espero que ayude.