Tout d'abord, que fait exactement Bonjour (merci de lire mes suppositions écrites ci-dessous)?
Ici, j'ai découvert que Bonjour permet la découverte automatique des ordinateurs, des périphériques et des services sur les réseaux IP. Mais je pensais que non seulement "il découvre les périphériques sur le réseau IP", il crée également un réseau IP en attribuant des adresses IP aux périphériques sur lesquels Bonjour s'exécute. Ai-je raison?Et l'essentiel me manque toujours. Cela fonctionne-t-il de la manière suivante? Je connecte d'abord les appareils (par exemple les ordinateurs portables) physiquement afin qu'ils puissent potentiellement communiquer entre eux. Ensuite, disons, sur certains ordinateurs portables, je fais fonctionner Bonjour, puis, en conséquence, ces ordinateurs portables leur attribuent automatiquement des adresses IP. Ainsi, les ordinateurs portables (sur lesquels Bonjour s'exécute) construisent un réseau IP. Cela fonctionne-t-il de cette façon?
Ou peut-être qu'un ordinateur exécutant Bonjour n'est pas considéré comme un service et qu'il ne se diffuse pas simplement parce que Bonjour s'exécute sur cet ordinateur. Je veux dire que les applications fonctionnant sur les ordinateurs doivent utiliser Bonjour pour se diffuser. Ce sont donc les applications qui se diffusent elles-mêmes (pas les ordinateurs) et cela ne se fait pas automatiquement (l'application doit se diffuser explicitement). Est ce juste?
Comment exactement ma candidature peut-elle se diffuser? Puis-je utiliser la ligne de commande pour enregistrer un service (afin que toutes les applications utilisant Bonjour sachent qu'un nouveau service est apparu)?
De plus, j'aimerais avoir une application qui utilise le réseau IP créé par Bonjour. Pour cela, mon application a besoin de savoir quels appareils / services sont présents sur le réseau. Plus en détail, mon application doit avoir une liste de services. Chaque service de la liste doit avoir un nom, l'adresse IP où il s'exécute et le port utilisé par l'application. Bonjour peut-il fournir ces informations d'une manière ou d'une autre? Si tel est le cas, comment cela fonctionne exactement. Comment mon programme peut-il obtenir ces informations de Bonjour? Mon programme peut-il lire un fichier créé par Bonjour et contenant les informations mentionnées ci-dessus? Puis-je utiliser certaines commandes en ligne de commande pour récupérer ces informations?
J'ai un intérêt particulier à accéder aux informations sur les services à partir de fichiers, de variables d'environnement ou de commandes en ligne de commande. Ces options me semblent être les plus simples! Étant donné que dans ces cas, je n'ai pas besoin d'utiliser de bibliothèques supplémentaires pour communiquer avec Bonjour à partir d'un langage de programmation particulier.
PS Pleas pose des questions si quelque chose n'est pas clair dans ma question. Je vais essayer de formuler ma question de manière plus claire.
PPS J'utilise Windows 7 .
AJOUT: J'ai l'intention d'écrire mes applications en PHP. Chaque ordinateur doit exécuter un serveur Web Apache. Et je veux utiliser Bonjour pour aider les ordinateurs à se découvrir mutuellement (les ordinateurs fonctionnent dans un réseau local).
la source
Pas assez; comme Jon l'a souligné, DHCP (généralement) est utilisé pour allouer des adresses IP. De la même manière que le DNS ordinaire traduit les noms de domaine en adresses IP, Bonjour est utilisé pour traduire les noms de domaine temporaires (au sein du réseau local) vers les adresses IP qui les fournissent.
Nan; les ordinateurs portables obtiennent généralement leurs adresses IP à partir d'un serveur DHCP local. Bonjour les aide simplement à déterminer quels services chacun peut fournir aux autres.
Oui - généralement, votre application devra annoncer explicitement son existence. Cela peut souvent être fait en utilisant des bibliothèques fournies par le système (courantes sur OS X) ou des bibliothèques personnalisées (par exemple Net :: Bonjour de perl).
Je ne connais pas d'outil de ligne de commande qui le fasse, mais de nombreux langages de programmation majeurs ont des bibliothèques disponibles pour ce faire.
La plupart des bibliothèques Bonjour devraient pouvoir le faire pour vous; voir le premier exemple à http://search.cpan.org/~chlige/Net-Bonjour-0.96/lib/Net/Bonjour.pm
À l'aide des bibliothèques appropriées, le programme utilise le protocole Bonjour pour demander à tous les autres ordinateurs de votre réseau local de lui indiquer les services dont ils disposent. Cette bibliothèque analysera ensuite les réponses et vous les présentera dans un format plus utile.
Je ne suis pas au courant d'un outil qui fait cela, mais il pourrait exister.
De plus amples informations sur ce que fera le programme que vous écrivez, et sur la langue dans laquelle vous l'écrivez, vous faciliteraient la tâche.
Pour plus d'informations d'introduction, essayez les deux:
la source
Bonjour n'attribue pas d'adresses IP - c'est un protocole de découverte - vous avez toujours besoin d'adresses IP DHCP / Static / Link-Local (APIPA) pour que cela fonctionne.
Il utilise le DNS multicast (mDNS) pour découvrir quels hôtes se trouvent sur le même domaine de diffusion que lui et, essentiellement, il devient son propre serveur DNS.
Voir Bonjour et Zeroconf pour la liste déroulante.
Sauf si votre application est destinée à un réseau domestique / non géré, c'est-à-dire sans un serveur DNS local, vous n'en avez tout simplement pas besoin.
la source