Primero, ¿qué hace exactamente Bonjour (por favor lea mis conjeturas escritas abajo)?
Aquí descubrí que Bonjour permite el descubrimiento automático de computadoras, dispositivos y servicios en redes IP. Pero pensé que no solo "descubre dispositivos en la red IP" sino que también crea una red IP al asignar direcciones IP a los dispositivos donde se está ejecutando Bonjour. Estoy en lo cierto?Y todavía extraño la esencia. ¿Funciona de la siguiente manera? Primero conecto los dispositivos (por ejemplo, computadoras portátiles) físicamente para que potencialmente puedan comunicarse entre sí. Luego, digamos, en algunas computadoras portátiles tengo Bonjour funcionando y luego, como consecuencia, estas computadoras portátiles les asignan direcciones IP automáticamente. Entonces, las computadoras portátiles (donde se está ejecutando Bonjour) crean una red IP. ¿Funciona de esta manera?
O puede ser que una computadora que ejecuta Bonjour no se considera como un servicio y no se transmite solo porque Bonjour se ejecuta en esta computadora. Quiero decir que las aplicaciones que se ejecutan en las computadoras necesitan usar Bonjour para transmitirse. Por lo tanto, son las aplicaciones las que se transmiten a sí mismas (no las computadoras) y no se hace automáticamente (la aplicación necesita transmitirse a sí mismas explícitamente). ¿Es correcto?
¿Cómo se puede transmitir mi aplicación exactamente? ¿Puedo usar la línea de comando para registrar un servicio (para que todas las aplicaciones que usan Bonjour sepan que apareció un nuevo servicio)?
Además, me gustaría tener una aplicación que use la red IP creada por Bonjour. Para eso, mi aplicación necesita saber qué dispositivos / servicios están presentes en la red. En más detalles, mi aplicación necesita tener una lista de servicios. Cada servicio en la lista debe tener un nombre, la dirección IP donde se está ejecutando y el puerto que utiliza la aplicación. ¿Bonjour puede proporcionar esta información de alguna manera? Si es el caso, cómo funciona exactamente. ¿Cómo puede mi programa obtener esta información de Bonjour? ¿Puede mi programa leer algún archivo creado por Bonjour y que contenga la información mencionada anteriormente? ¿Puedo usar algunos comandos en la línea de comandos para recuperar esta información?
Tengo un interés especial en acceder a la información sobre servicios desde archivos, variables de entorno o comandos en la línea de comandos. ¡Estas opciones me parecen las más simples! Como en este caso no necesito usar ninguna biblioteca adicional para comunicarme con Bonjour desde un lenguaje de programación en particular.
PD: Haga preguntas si algo no está claro en mi pregunta. Trataré de formular mi pregunta de una manera más clara.
PPS Yo uso Windows 7 .
AGREGADO: planeo escribir mis aplicaciones en PHP. Cada computadora debe ejecutar un servidor web Apache. Y quiero usar Bonjour para ayudar a la computadora a descubrirse (las computadoras están trabajando en una red local).
fuente
No exactamente; Como señaló Jon, DHCP (generalmente) se utiliza para asignar direcciones IP. De la misma manera que el DNS ordinario traduce los nombres de dominio a direcciones IP, Bonjour se utiliza para traducir nombres de dominio temporales (dentro de la red local) a las direcciones IP que los proporcionan.
No; Es muy probable que las computadoras portátiles obtengan sus direcciones IP de un servidor DHCP local. Bonjour simplemente los ayuda a determinar qué servicios puede proporcionar cada uno a los demás.
Sí, en general, su aplicación deberá anunciar su existencia explícitamente. Esto a menudo se puede hacer utilizando bibliotecas proporcionadas por el sistema (comunes en OS X) o bibliotecas personalizadas (por ejemplo, Net :: Bonjour de perl).
No conozco una herramienta de línea de comandos que haga esto, pero muchos lenguajes de programación principales tienen bibliotecas disponibles para hacerlo.
La mayoría de las bibliotecas de Bonjour deberían poder hacer esto por usted; vea el primer ejemplo en http://search.cpan.org/~chlige/Net-Bonjour-0.96/lib/Net/Bonjour.pm
Usando las bibliotecas apropiadas, el programa usa el protocolo Bonjour para pedirle a todas las otras computadoras en su red local que le digan qué servicios tienen disponibles. Esa biblioteca analizará las respuestas y se las presentará en un formato más útil.
No conozco una herramienta que haga esto, pero podría existir.
Un poco más de información sobre lo que hará el programa que está escribiendo y en qué idioma lo está escribiendo, facilitaría su ayuda.
Para obtener más información introductoria, intente ambos:
fuente
Bonjour no asigna direcciones IP, es un protocolo de descubrimiento, aún necesita direcciones IP DHCP / Estática / Enlace Local (APIPA) para que funcione.
Utiliza DNS multidifusión (mDNS) para descubrir qué hosts están en el mismo dominio de difusión que él mismo y, esencialmente, se convierte en su propio servidor DNS.
Vea Bonjour y Zeroconf para conocer los detalles.
A menos que su aplicación sea para una red doméstica / no administrada, es decir, que carece de un servidor DNS local, simplemente no la necesita.
fuente