Во-первых, что конкретно делает Bonjour (пожалуйста, прочитайте мои догадки, написанные ниже)?
Здесь я обнаружил, что Bonjour позволяет автоматически обнаруживать компьютеры, устройства и службы в IP-сетях. Но я подумал, что он не только «обнаруживает устройства в IP-сети», но и создает IP-сеть, назначая IP-адреса устройствам, на которых работает Bonjour. Я прав?И я до сих пор скучаю по сути. Это работает следующим образом? Сначала я физически подключаю устройства (например, ноутбуки), чтобы они потенциально могли общаться друг с другом. Затем, скажем, на некоторых ноутбуках у меня запущен Bonjour, и, как следствие, эти ноутбуки автоматически присваивают им IP-адреса. Итак, ноутбуки (где работает Bonjour) создают IP-сеть. Это работает таким образом?
Или, может быть, компьютер под управлением Bonjour не считается службой и не транслируется сам по себе только потому, что Bonjour работает на этом компьютере. Я имею в виду, что приложения, работающие на компьютерах, должны использовать Bonjour для прямой трансляции. Таким образом, это приложения, которые транслируют себя (не компьютеры), и это не делается автоматически (приложение должно транслировать себя непосредственно). Это правильно?
Как именно мое приложение может транслироваться само? Могу ли я использовать командную строку для регистрации службы (чтобы все приложения, использующие Bonjour, знали, что появилась новая служба)?
Кроме того, я хотел бы иметь приложение, которое использует IP-сеть, созданную Bonjour. Для этого моему приложению необходимо знать, какие устройства / сервисы присутствуют в сети. Более подробно, мое приложение должно иметь список услуг. У каждой службы в списке должно быть имя, IP-адрес, на котором она работает, и порт, который используется приложением. Может ли Bonjour предоставить эту информацию каким-либо образом? Если это так, то как именно это работает. Как моя программа может получить эту информацию от Bonjour? Может ли моя программа прочитать какой-нибудь файл, созданный Bonjour и содержащий вышеупомянутую информацию? Могу ли я использовать некоторые команды в командной строке для получения этой информации?
У меня есть особый интерес к доступу к информации об услугах из файлов, переменных среды или команд в командной строке. Эти варианты кажутся мне самыми простыми! Поскольку в этом случае мне не нужно использовать какие-либо дополнительные библиотеки для связи с Bonjour с определенного языка программирования.
PS Прошу задавать вопросы, если что-то не понятно в моем вопросе. Я постараюсь сформулировать свой вопрос более четко.
PPS я использую Windows 7 .
ДОБАВЛЕНО: я планирую писать свои приложения на PHP. На каждом компьютере должен быть установлен веб-сервер Apache. И я хочу использовать Bonjour, чтобы помочь компьютеру обнаружить друг друга (компьютеры работают в локальной сети).
источник
Не совсем; как указал Джон, DHCP (обычно) используется для распределения IP-адресов. Почти так же, как обычный DNS переводит доменные имена в IP-адреса, Bonjour используется для преобразования временных доменных имен (в локальной сети) в IP-адреса, предоставляющие их.
Нет; ноутбуки чаще всего получают свои IP-адреса с локального DHCP-сервера. Добрый день только помогает им решить, какие услуги каждый может предоставить другим.
Да, как правило, ваше приложение должно будет явно объявить о своем существовании. Это часто можно сделать с помощью системных библиотек (распространенных в OS X) или пользовательских библиотек (например, perl's Net :: Bonjour).
Я не знаю об инструменте командной строки, который делает это, но у многих основных языков программирования есть библиотеки, доступные для этого.
Большинство библиотек Bonjour должны быть в состоянии сделать это для вас; см. первый пример на http://search.cpan.org/~chlige/Net-Bonjour-0.96/lib/Net/Bonjour.pm
Используя соответствующие библиотеки, программа использует протокол Bonjour, чтобы попросить все другие компьютеры в вашей локальной сети сообщить ему, какие услуги они имеют. Затем эта библиотека проанализирует ответы и представит их вам в более полезном формате.
Я не знаю инструмента, который делает это, но он может существовать.
Еще немного информации о том, что программа, которую вы пишете, и на каком языке вы пишете, поможет вам в этом.
Для получения дополнительной вводной информации попробуйте оба варианта:
источник
Bonjour не назначает IP-адреса - это протокол обнаружения - вам все еще нужны IP-адреса DHCP / Static / Link-Local (APIPA) для его работы.
Он использует многоадресный DNS (mDNS), чтобы обнаружить, какие хосты находятся в том же широковещательном домене, что и он сам, и, по сути, он становится собственным DNS-сервером.
Посмотрите Bonjour & Zeroconf для более низкого уровня.
Если ваше приложение не предназначено для домашней / неуправляемой сети, то есть без локального DNS-сервера, оно просто не нужно.
источник