Ich glaube, das verwendet die _device-info._tcp. mDNS zeichnet für die IP-Adresse auf. Sie können das für sich selbst sehen. Im Terminal können Sie dig @224.0.0.251 -p5353
verwenden, um mDNS-Anfragen auszuführen. Sie können dig @224.0.0.251 -p5353 Foo.local.
verwenden, um die IP-Adresse des Computers Foo.local aufzulösen. Nehmen Sie das IP und stecken Sie es wieder in dig @224.0.0.251 -p5353 -x $IP
und Sie sollten in etwa wie folgt sehen:
> 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
Beachten Sie den zusätzlichen Abschnitt.
Leider weiß ich nicht, wie man diese Informationen mithilfe der Bonjour-APIs erhält.
Bearbeiten: Sie können diese Informationen auch in einer einzigen Abfrage mit dig @224.0.0.251 -p5353 Foo._device-info._tcp.local. TXT
erhalten.
danke das ist sehr cool! Falls jemand anderes das gleiche Problem hat, können Sie das Modell mit dem folgenden Befehl auswählen: dig @ 224.0.0.251 -p5353 BigMac._device-info._tcp.local. TXT | grep Modell | awk '{print $ 5}' | sed -e 's/"model = //; s /" //' Wenn jemand weiß, wie man dies mit Apple's APIs macht, bin ich immer noch daran interessiert. –
das funktioniert gut für alle Apple-Geräte in meinem Netzwerk, aber für einen "Brother DCP-8085DN" -Drucker, der sich unter _printer._tcp meldet. Ich bekomme "Zeitüberschreitung bei der Verbindung; keine Server konnten erreicht werden" - Könnten Sie bitte einige Informationen darüber geben, wann ich mit der Arbeit von Dig arbeiten sollte? Vielen Dank!!! –
Sie sollten damit rechnen, dass es für Apple-Geräte funktioniert. Wahrscheinlich unterstützt kein anderes Gerät es, aber das liegt wirklich am Gerät. Ich stelle mir vor, dass Druckerinformationen (die für die Anzeige des Druckersymbols verwendet werden) als Teil des TXT-Datensatzes für den entsprechenden Bonjour-Dienst angegeben werden, und nicht so, wie es für zusätzliche Daten wie dieses Modell offensichtlich ist. –