Was genau macht Bonjour?
Hier fand ich heraus, dass Bonjour die automatische Erkennung von Computern, Geräten und Diensten in IP-Netzwerken ermöglicht. Aber ich dachte, dass es nicht nur "Geräte im IP-Netzwerk erkennt", sondern auch ein IP-Netzwerk erstellt, indem es Geräten, auf denen Bonjour ausgeführt wird, IP-Adressen zuweist. Habe ich recht?Und ich vermisse immer noch das Wesentliche. Funktioniert es wie folgt? Zuerst verbinde ich Geräte (zum Beispiel Laptops) physisch, damit sie möglicherweise miteinander kommunizieren können. Nehmen wir an, auf einigen Laptops läuft Bonjour, und in der Folge weisen diese Laptops sich selbst automatisch IP-Adressen zu. Laptops (auf denen Bonjour ausgeführt wird) bauen also ein IP-Netzwerk auf. Funktioniert das so?
Möglicherweise wird ein Computer, auf dem Bonjour ausgeführt wird, nicht als Dienst angesehen und sendet sich nicht selbst, nur weil Bonjour auf diesem Computer ausgeführt wird. Ich meine, dass die Anwendungen, die auf den Computern ausgeführt werden, Bonjour verwenden müssen, um sich selbst zu verbreiten. Es sind also Anwendungen, die sich selbst senden (keine Computer), und dies erfolgt nicht automatisch (die Anwendung muss sich selbst explizit senden). Ist es richtig?
Wie genau kann meine Anwendung sich selbst übertragen? Kann ich einen Dienst über die Befehlszeile registrieren (damit alle Anwendungen, die Bonjour verwenden, wissen, dass ein neuer Dienst angezeigt wurde)?
Außerdem hätte ich gerne eine Anwendung, die das von Bonjour erstellte IP-Netzwerk verwendet. Zu diesem Zweck muss meine Anwendung wissen, welche Geräte / Dienste im Netzwerk vorhanden sind. Im Einzelnen muss meine Anwendung eine Liste von Diensten enthalten. Jeder Dienst in der Liste sollte einen Namen haben, die IP-Adresse, unter der er ausgeführt wird, und den Port, der von der Anwendung verwendet wird. Kann Bonjour diese Informationen auf irgendeine Weise bereitstellen? Wenn ja, wie genau funktioniert das? Wie kann mein Programm diese Informationen von Bonjour erhalten? Kann mein Programm Dateien lesen, die von Bonjour erstellt wurden und die oben genannten Informationen enthalten? Kann ich einige Befehle in der Befehlszeile verwenden, um diese Informationen abzurufen?
Ich habe ein besonderes Interesse daran, auf Informationen zu Diensten aus Dateien, Umgebungsvariablen oder Befehlen in der Befehlszeile zuzugreifen. Diese Optionen scheinen mir die einfachsten zu sein! Da ich in diesem Fall keine zusätzlichen Bibliotheken verwenden muss, um mit Bonjour aus einer bestimmten Programmiersprache heraus zu kommunizieren.
PS Bitte stellen Sie Fragen, wenn etwas in meiner Frage nicht klar ist. Ich werde versuchen, meine Frage klarer zu formulieren.
PPS Ich benutze Windows 7 .
HINZUGEFÜGT: Ich plane, meine Anwendungen in PHP zu schreiben. Auf jedem Computer sollte ein Apache-Webserver ausgeführt werden. Und ich möchte Bonjour verwenden, um Computer bei der gegenseitigen Erkennung zu unterstützen (Computer arbeiten in einem lokalen Netzwerk).
quelle
Nicht ganz; Wie Jon betonte, wird DHCP (normalerweise) verwendet, um IP-Adressen zuzuweisen. Genauso wie gewöhnliches DNS Domainnamen in IP-Adressen übersetzt, wird Bonjour verwendet, um temporäre Domainnamen (innerhalb des lokalen Netzwerks) in die IP-Adressen zu übersetzen, die sie bereitstellen.
Nee; Meistens beziehen die Laptops ihre IP-Adressen von einem lokalen DHCP-Server. Bonjour hilft ihnen nur dabei, herauszufinden, welche Dienstleistungen jeder für den anderen erbringen kann.
Ja, in der Regel muss Ihre Anwendung explizit für ihre Existenz werben. Dies kann häufig mithilfe von vom System bereitgestellten Bibliotheken (häufig unter OS X) oder benutzerdefinierten Bibliotheken (z. B. Net :: Bonjour von Perl) erfolgen.
Mir ist kein Befehlszeilentool bekannt, das dies ausführt, aber in vielen wichtigen Programmiersprachen stehen hierfür Bibliotheken zur Verfügung.
Die meisten Bonjour-Bibliotheken sollten dies für Sie tun können. Das erste Beispiel finden Sie unter http://search.cpan.org/~chlige/Net-Bonjour-0.96/lib/Net/Bonjour.pm
Unter Verwendung der entsprechenden Bibliotheken fragt das Programm mithilfe des Bonjour-Protokolls alle anderen Computer in Ihrem lokalen Netzwerk, welche Dienste verfügbar sind. Diese Bibliothek analysiert dann die Antworten und präsentiert sie Ihnen in einem nützlicheren Format.
Mir ist kein Tool bekannt, das dies tut, aber es könnte existieren.
Weitere Informationen darüber, was das von Ihnen geschriebene Programm bewirkt und in welcher Sprache Sie es schreiben, erleichtern die Hilfe.
Versuchen Sie für weitere einführende Informationen beide:
quelle
Bonjour weist keine IP-Adressen zu - es ist ein Erkennungsprotokoll - Sie benötigen weiterhin DHCP / Static / Link-Local (APIPA) -IP-Adressen, damit dies funktioniert.
Es verwendet Multicast-DNS (mDNS), um herauszufinden, welche Hosts sich in derselben Broadcast-Domäne befinden, und wird im Wesentlichen zu einem eigenen DNS-Server.
Weitere Informationen finden Sie unter Bonjour & Zeroconf .
Wenn Ihre Anwendung nicht für ein Heimnetzwerk oder ein nicht verwaltetes Netzwerk bestimmt ist, dh wenn kein lokaler DNS-Server vorhanden ist, benötigen Sie ihn einfach nicht.
quelle