2010-03-04 11 views
11

Czy można używać Bonjour z wiersza poleceń? Na przykład, jeśli chcę zarejestrować usługę, wpiszę coś takiego: bonjour -register nazwa_usługi port. A potem Bonjour przydziela darmowe IP dla mojej usługi. Lub na przykład, jeśli chcę zobaczyć listę dostępnych usług, wpisuję coś w stylu: bonjour -showServices. A następnie otrzymuję listę wszystkich dostępnych usług wraz z ich nazwami, adresami IP i portami. Czy coś takiego istnieje?Czy mogę korzystać z Bonjour z wiersza poleceń?

Jestem trochę zdezorientowany dostępną dokumentacją. Na przykład here, na początku dokumentu widzę:

Aby zarejestrować usługę, zadzwoń DNSServiceRegister.

Gdzie powinienem to nazwać? W linii poleceń? W Javie? W C++? W python? To dziwne, że tego rodzaju kontekst nie jest dostarczany.

Ogólnie, znajduję tylko ogólne informacje na temat zeroconf i Bonjour (co ma robić). Ale nie mogę znaleźć czegoś konkretnego i prostego. Podobnie jak w przypadku "Hello World" przykłady użycia Bonjour.

Czy ktoś może mi w tym pomóc?

+0

dziękuję za odpowiedź. Pomagają, ale wciąż nie otrzymałem odpowiedzi na moje pytanie: "Czy mogę użyć Bonjour z linii poleceń?". Max, mDNS nie jest dla Windows (który potrzebuję).jdizzle, dns-sd jest bardzo blisko tego, czego potrzebuję, ale to nie jest Bonjour, prawda? Może być dns-sd jest używany przez Bonjour? – Roman

+0

Znalazłem przykład wykorzystania Bonjour w świecie rzeczywistym z wiersza poleceń, aby reklamować drukarkę na innej maszynie, która nie obsługuje mDNS. Możesz znaleźć odpowiedź na niektóre z twoich pytań: http://playcontrol.net/ewing/jibberjabber/advertising_a_legacy_networ.html – Max

+0

dns-sd to narzędzie linii poleceń do rejestrowania/przeglądania ogłoszeń bonjour. Dokładnie to, co chcesz, ale założę się, czego naprawdę chcesz, to API bonjour do twojej aplikacji, która również istnieje. – jdizzle

Odpowiedz

1

Tak, jest to z pewnością możliwe. Spójrz na stronę man dla mDNS

+0

Ale myślę, że mDNS jest dla Mac OS, prawda? Muszę korzystać z systemu Windows XP. – Roman

+2

Kupuj, czy mDNS jest częścią Bonjour? Lub w jaki sposób mDNS i Bonjour są ze sobą powiązane? – Roman

+0

Tak, mDNS jest programem dla systemu Mac OS/UNIX. mDNS jest częścią Bonjour (co kiedyś było nazywane Rendezvous), która jest implementacją sieci Zeroconf firmy Apple. Zapoznaj się z materiałem referencyjnym na stronie Apple: http://developer.apple.com/networking/bonjour/index.html. – Max

20

dns-sd jest programem wiersza poleceń, który działa zarówno na Windows i Mac OS X.

często używam go do akcji tunel iTunes przez Internet z ssh. Moje typowe zastosowanie to dns-sd -P my_music _daap._tcp. local 3690 localhost 127.0.0.1. Zakłada się, że skonfigurowałem tunelowanie tunelu ssh na porcie localhost 3690, aby port 3689 hosta udostępniał iTunes w sieci zagranicznej. To sprawia, że ​​mała ikona iTunes pojawia się w iTunes o nazwie "my_music".

5

mDNS jest starszą wersją narzędzia dns-sd. Są to zarówno narzędzia wiersza poleceń, napisane przez Apple, do interakcji z Bonjour.

można użyć narzędzia wiersza polecenia, aby zrobić kilka rzeczy z Bonjour, ale zacytować ze strony człowieka DNS-SD:

Komenda DNS-SD jest przeznaczony głównie do użytku interaktywnego. Ponieważ jego argumenty wiersza poleceń i format wyjściowy mogą ulec zmianie, wywoływanie ich ze skryptu powłoki będzie na ogół kruchy.

Jeśli chcesz wykonać operacje wykrywania usługi DNS za pomocą języka skryptowego, najlepszym sposobem na to nie jest wykonanie polecenia dns-sd, a następnie próba odszyfrowania tekstu wyjściowego, ale bezpośrednie wywołanie DNS -SD API przy użyciu powiązania dla wybranego języka.

Na przykład, jeśli programujesz w Ruby, możesz bezpośrednio wywoływać interfejsy API DNS-SD, korzystając z pakietu dnssd udokumentowanego pod numerem http://rubyforge.org/projects/dnssd/. Podobne wiązania dla innych języków są również opracowywane.

Na przykład, poprosił o "DNSServiceRegister", która jest funkcją C:
http://developer.apple.com/library/mac/#documentation/Networking/Reference/DNSServiceDiscovery_CRef/dns_sd_h/index.html#//apple_ref/c/func/DNSServiceRegister

Powiązane problemy