2010-03-04 9 views
11

Ist es möglich, Bonjour über die Befehlszeile zu verwenden? Zum Beispiel, wenn ich einen Dienst registrieren möchte, gebe ich etwas ein: bonjour -register service_name port. Und dann vergeben Bonjour eine freie IP für meinen Dienst. Oder, zum Beispiel, wenn ich eine Liste der verfügbaren Dienste sehen möchte, gebe ich etwas ein wie: bonjour -showServices. Und dann bekomme ich eine Liste aller verfügbaren Dienste mit ihren Namen, IP-Adressen und Ports. Gibt es so etwas?Kann ich Bonjour über die Befehlszeile verwenden?

Ich bin etwas verwirrt von der verfügbaren Dokumentation. Zum Beispiel here, am Anfang des Dokuments sehe ich:

Ihren Dienst zu registrieren, ruft DNSServiceRegister.

Wo soll ich es nennen? In der Befehlszeile? In Java? In C++? In Python? Es ist irgendwie seltsam, dass diese Art von Kontext nicht bereitgestellt wird.

Im Allgemeinen finde ich nur eine allgemeine Information über Zeroconf und Bonjour (was es tun soll). Aber ich kann nichts Konkretes und Einfaches finden. Wie "Hello World" Beispiele für die Verwendung von Bonjour.

Kann mir jemand dabei helfen?

+0

Vielen Dank für die Antwort. Sie helfen, aber hat immer noch nicht die Antwort auf meine Frage erhalten: "Kann ich Bonjour von der Befehlszeile aus verwenden?". Max, mDNS ist nicht für Windows (was ich brauche).jdizzle, dns-sd ist sehr nah an dem, was ich brauche, aber es ist nicht Bonjour, oder? Darf dns-sd von Bonjour benutzt werden? – Roman

+0

Ich habe ein Beispiel für eine reale Verwendung von Bonjour über die Befehlszeile gefunden, um einen Drucker auf einem anderen Computer anzukündigen, der mDNS nicht unterstützt. Vielleicht finden Sie hier Antworten auf einige Ihrer Fragen: http://playcontrol.net/ewing/jibberjabber/advertising_a_legacy_networ.html – Max

+0

dns-sd ist ein Kommandozeilen-Tool zum Registrieren/Durchsuchen von Bonjour-Ankündigungen. Es ist genau das, was Sie sagen, dass Sie wollen, aber ich wette, was Sie wirklich wollen, ist eine Bonjour-API für Ihre Anwendung, die auch existiert. – jdizzle

Antwort

1

Ja, das ist sicher möglich. Werfen Sie einen Blick auf die Manpage mDNS

+0

Aber ich denke, mDNS ist für Mac OS, nicht wahr? Ich muss Windows XP verwenden. – Roman

+2

Kauf den Weg, ist mDNS ein Teil von Bonjour? Oder, wie mDNS und Bonjour verwandt sind? – Roman

+0

Ja, mDNS ist ein Mac OS/UNIX-Programm. mDNS ist ein Teil von Bonjour (was früher Rendezvous genannt wurde), das ist Apples Implementierung von Zeroconf-Netzwerken. Sehen Sie sich das Referenzmaterial auf der Apple-Website an: http://developer.apple.com/networking/bonjour/index.html. – Max

20

dns-sd ist das Kommandozeilen-Programm, das auf Windows und Mac OS X.

ich oft es verwenden, um Tunnel iTunes Aktien über das Internet mit ssh funktioniert. Meine typische Verwendung ist dns-sd -P my_music _daap._tcp. local 3690 localhost 127.0.0.1. Dies setzt voraus, dass ich einen SSH-Tunnel eingerichtet habe und höre auf localhost port 3690 auf Port 3689 des Hosts, der iTunes im fremden Netzwerk teilt. Dadurch wird in iTunes ein kleines iTunes-Freigabesymbol namens "my_music" angezeigt.

5

mDNS ist eine ältere Version des Tools dns-sd. Sie sind beide von Apple geschriebene Befehlszeilenwerkzeuge, um mit Bonjour zu interagieren.

Sie können das Kommandozeilen-Tool verwenden, um ein paar Dinge mit Bonjour zu tun, sondern von der dns-sd-man-Seite zu zitieren:

Der dns-sd-Befehl in erster Linie für die interaktive Nutzung gedacht. Da die Befehlszeilenargumente und das Ausgabeformat Änderungen unterliegen, ist das Aufrufen eines Shellskripts im Allgemeinen fragil.

Wenn Sie DNS-Service-Discovery-Vorgänge über eine Skriptsprache ausführen möchten, sollten Sie den Befehl dns-sd nicht ausführen und dann versuchen, die Textausgabe zu entschlüsseln, sondern den DNS direkt aufzurufen -SD-APIs, die eine Bindung für die von Ihnen ausgewählte Sprache verwenden

Wenn Sie beispielsweise in Ruby programmieren, können Sie DNS-SD-APIs direkt mit dem unter http://rubyforge.org/projects/dnssd/ dokumentierten dnssd-Paket aufrufen. Ähnliche Bindungen für andere Sprachen sind ebenfalls in Entwicklung.

Zum Beispiel fragte Sie über "DNSServiceRegister", die eine C-Funktion ist:
http://developer.apple.com/library/mac/#documentation/Networking/Reference/DNSServiceDiscovery_CRef/dns_sd_h/index.html#//apple_ref/c/func/DNSServiceRegister