2010-03-04 3 views
11

Можно ли использовать Bonjour из командной строки? Например, если я хочу зарегистрировать службу, я нахожу что-то вроде этого: bonjour -register service_name port. Затем Bonjour выделяет бесплатный IP-адрес для моего сервиса. Или, например, если я хочу увидеть список доступных сервисов, я набираю что-то вроде: bonjour -showServices. И затем я получаю список всех доступных сервисов с их именами, IP-адресами и портами. Что-то подобное существует?Могу ли я использовать Bonjour из командной строки?

Я немного смущен доступной документацией. Например here, в начале документа я вижу:

Чтобы зарегистрировать услугу, звоните DNSServiceRegister.

Куда я могу позвонить? В командной строке? В Java? В C++? В python? Странно, что такого рода контекст не предоставляется.

В общем, я нахожу только общую информацию о zeroconf и Bonjour (что он должен делать). Но я не могу найти что-то конкретное и простое. Как пример «Hello World» использования Bonjour.

Может ли кто-нибудь помочь мне с этим?

+0

Большое спасибо за ответ. Они помогают, но до сих пор не получили ответа на мой вопрос: «Можно ли использовать Bonjour из командной строки?». Макс, mDNS не для Windows (что мне нужно).jdizzle, dns-sd очень близок к тому, что мне нужно, но это не Bonjour, не так ли? Может быть, dns-sd используется Bonjour? – Roman

+0

Я нашел пример использования Bonjour в реальном мире из командной строки, чтобы рекламировать принтер на другом компьютере, который не поддерживает mDNS. Вы можете найти ответы на некоторые из своих вопросов: http://playcontrol.net/ewing/jibberjabber/advertising_a_legacy_networ.html – Max

+0

dns-sd - это инструмент командной строки для регистрации/просмотра объявлений bonjour. Это именно то, что вы говорите, что хотите, но я уверен, что вы действительно хотите использовать API-интерфейс Bonjour для вашего приложения, которое также существует. – jdizzle

ответ

1

Да, это конечно возможно. Посмотрите на странице человека для mDNS

+0

Но я думаю, что mDNS для Mac OS, не так ли? Мне нужно использовать Windows XP. – Roman

+2

Купите дорогу, является mDNS частью Bonjour? Или, как связаны mDNS и Bonjour? – Roman

+0

Да, mDNS - это программа для Mac OS/UNIX. mDNS является частью Bonjour (что раньше называлось Rendezvous), что является реализацией Apple в сети Zeroconf. Взгляните на справочный материал на веб-сайте Apple: http://developer.apple.com/networking/bonjour/index.html. – Max

20

dns-sd это программа командной строки, которая работает на обоих окнах и Mac OS X.

Я часто использую его акции туннеля ITunes через Интернет с SSH. Мое типичное использование - dns-sd -P my_music _daap._tcp. local 3690 localhost 127.0.0.1. Это предполагает, что я настроил прослушивание туннеля ssh на localhost port 3690 на порт 3689 хоста, который использует iTunes в чужой сети. Это означает, что в iTunes отображается значок iTunes с именем «my_music».

5

mDNS - это старая версия инструмента dns-sd. Они являются инструментами командной строки, написанными Apple, для взаимодействия с Bonjour.

Вы можете использовать инструмент командной строки, чтобы сделать несколько вещей с Bonjour, но процитировать человек страницы DNS-сд:

Команда DNS-сд в первую очередь предназначен для интерактивного использования. Поскольку его аргументы командной строки и выходной формат могут быть изменены, вызов из сценария оболочки обычно будет хрупким.

Если вы хотите выполнить операции обнаружения службы DNS с языка сценариев, лучшим способом сделать это не является выполнение команды dns-sd, а затем попытка расшифровки текстового вывода, а вместо этого для прямого вызова DNS -SD API, используя привязку для выбранного вами языка.

Например, если вы программируете в Ruby, вы можете напрямую обращаться к API-интерфейсам DNS-SD, используя пакет dnssd, зарегистрированный по адресу http://rubyforge.org/projects/dnssd/. Аналогичные привязки для других языков также находятся в разработке.

Например, вы спрашивали о "DNSServiceRegister", которая является функцией C:
http://developer.apple.com/library/mac/#documentation/Networking/Reference/DNSServiceDiscovery_CRef/dns_sd_h/index.html#//apple_ref/c/func/DNSServiceRegister

Смежные вопросы