Creo que esto usa _device-info._tcp. Registro mDNS para la dirección IP. Puedes ver esto por ti mismo. En la terminal, puede usar dig @224.0.0.251 -p5353
para realizar solicitudes de mDNS. Puede usar dig @224.0.0.251 -p5353 Foo.local.
para resolver la dirección IP de la computadora Foo.local. Tome esa IP y vuelva a conectarlo a dig @224.0.0.251 -p5353 -x $IP
y debería ver algo como lo siguiente:
> dig @224.0.0.251 -p5353 -x 10.0.1.1
; <<>> DiG 9.6.0-APPLE-P2 <<>> @224.0.0.251 -p5353 -x 10.0.1.1
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22887
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;1.0.0.10.in-addr.arpa. IN PTR
;; ANSWER SECTION:
1.0.0.10.in-addr.arpa. 10 IN PTR Foo.local.
;; ADDITIONAL SECTION:
Foo._device-info._tcp.local. 10 IN TXT "model=MacBookPro5,3"
;; Query time: 4 msec
;; SERVER: 10.0.0.1#5353(224.0.0.251)
;; WHEN: Mon Nov 29 18:00:23 2010
;; MSG SIZE rcvd: 131
Aviso la sección adicional.
Lamentablemente, no sé cómo obtener esta información utilizando las API de Bonjour.
Editar: También puede obtener esta información en una sola consulta con dig @224.0.0.251 -p5353 Foo._device-info._tcp.local. TXT
.
gracias eso es genial! En caso de que alguien más tenga el mismo problema, puede elegir el modelo usando: dig @ 224.0.0.251 -p5353 BigMac._device-info._tcp.local. TXT | grep model | awk '{print $ 5}' | sed-e 's/"model = //; s /" //' Si alguien sabe cómo hacer esto usando las API de Apple, todavía estoy interesado en eso. –
esto funciona bien para todos los equipos de Apple en mi red, pero para una impresora "Brother DCP-8085DN" que se anuncia bajo _printer._tcp. Recibo "tiempo de espera de conexión agotado, no se pudo llegar a ningún servidor". ¿Podría proporcionarnos alguna información sobre cuándo debería funcionar Cave? ¡¡¡Gracias!!! –
Debería esperar que funcione para Apple. Lo más probable es que ningún otro dispositivo lo admita, pero eso depende realmente del dispositivo. Imagino que la información de la impresora (que se utiliza para mostrar el icono de la impresora) se proporciona como parte del registro TXT para el servicio bonjour apropiado, en lugar de como datos aparentemente extra parecidos a este modelo. –