Po pierwsze, co dokładnie robi Bonjour (prośby czytają moje domysły napisane poniżej)?
Tutaj dowiedziałem się, że Bonjour umożliwia automatyczne wykrywanie komputerów, urządzeń i usług w sieciach IP. Pomyślałem jednak, że nie tylko „odkrywa urządzenia w sieci IP”, ale także tworzy sieć IP, przypisując adresy IP urządzeniom, na których działa Bonjour. Czy mam rację?I wciąż tęsknię za istotą. Czy to działa w następujący sposób? Najpierw podłączam urządzenia (na przykład laptopy) fizycznie, aby potencjalnie mogły się ze sobą komunikować. Następnie, powiedzmy, na niektórych laptopach mam uruchomioną Bonjour, a następnie, w konsekwencji, te laptopy przydzielają im adresy IP w sposób automatyczny. Tak więc laptopy (gdzie działa Bonjour) budują sieć IP. Czy to działa w ten sposób?
Lub może być komputerem, na którym działa Bonjour, nie jest uważany za usługę i sam nie nadaje się tylko dlatego, że Bonjour działa na tym komputerze. Mam na myśli, że aplikacje działające na komputerach muszą używać Bonjour do samodzielnego nadawania. Tak więc to aplikacje, które same się nadają (nie komputery) i nie odbywa się to automatycznie (aplikacja musi nadawać się jawnie). Czy to jest poprawne?
Jak dokładnie moja aplikacja może sama się nadawać? Czy mogę użyć wiersza polecenia do zarejestrowania usługi (aby wszystkie aplikacje korzystające z Bonjour wiedziały, że pojawiła się nowa usługa)?
Ponadto chciałbym mieć aplikację, która korzysta z sieci IP stworzonej przez Bonjour. W tym celu moja aplikacja musi wiedzieć, które urządzenia / usługi są obecne w sieci. Bardziej szczegółowo, moja aplikacja musi mieć listę usług. Każda usługa na liście powinna mieć nazwę, adres IP, na którym jest uruchomiona, oraz port używany przez aplikację. Czy Bonjour może przekazać te informacje w jakiś sposób? Jeśli tak, to jak dokładnie to działa. W jaki sposób mój program może uzyskać te informacje od Bonjour? Czy mój program może odczytać plik utworzony przez Bonjour i zawierający wyżej wymienione informacje? Czy mogę użyć niektórych poleceń w wierszu poleceń, aby pobrać te informacje?
Szczególnie interesuje mnie dostęp do informacji o usługach z plików, zmiennych środowiskowych lub poleceń w wierszu poleceń. Te opcje wydają mi się najprostsze! Ponieważ w takim przypadku nie muszę używać żadnych dodatkowych bibliotek do komunikacji z Bonjour z określonego języka programowania.
PS Pleas zadaje pytania, jeśli coś nie jest jasne w moim pytaniu. Postaram się sformułować moje pytanie w bardziej przejrzysty sposób.
PPS Używam Windows 7 .
DODANO: Planuję pisać moje aplikacje w języku PHP. Każdy komputer powinien obsługiwać serwer WWW Apache. I chcę użyć Bonjour, aby pomóc komputerowi odkryć się nawzajem (komputery pracują w sieci lokalnej).
źródło
Nie do końca; jak zauważył Jon, DHCP (zwykle) służy do przydzielania adresów IP. W podobny sposób, w jaki zwykły DNS tłumaczy nazwy domen na adresy IP, Bonjour służy do tłumaczenia tymczasowych nazw domen (w sieci lokalnej) na adresy IP, które je udostępniają.
Nie; laptopy najczęściej uzyskują adresy IP z lokalnego serwera DHCP. Bonjour pomaga im po prostu ustalić, jakie usługi każdy może świadczyć innym.
Tak - generalnie aplikacja będzie musiała jawnie zareklamować swoje istnienie. Często można to zrobić za pomocą bibliotek systemowych (typowych dla OS X) lub bibliotek niestandardowych (np. Net :: Bonjour).
Nie znam narzędzia wiersza polecenia, które to robi, ale wiele głównych języków programowania ma do tego celu biblioteki.
Większość bibliotek Bonjour powinna to zrobić za Ciebie; zobacz pierwszy przykład na stronie http://search.cpan.org/~chlige/Net-Bonjour-0.96/lib/Net/Bonjour.pm
Korzystając z odpowiednich bibliotek, program korzysta z protokołu Bonjour, aby zapytać wszystkie inne komputery w sieci lokalnej o informację, jakie usługi są dostępne. Ta biblioteka następnie przeanalizuje odpowiedzi i przedstawi je w bardziej przydatnym formacie.
Nie znam narzędzia, które to robi, ale może istnieć.
Więcej informacji o tym, co zrobi program, który piszesz, oraz w jakim języku piszesz, ułatwi ci pomoc.
Aby uzyskać więcej informacji wprowadzających, wypróbuj oba:
źródło
Bonjour nie przypisuje adresów IP - jest to protokół wykrywania - nadal potrzebujesz adresów IP DHCP / Static / Link-Local (APIPA), aby działał.
Używa multiemisji DNS (mDNS), aby dowiedzieć się, które hosty znajdują się w tej samej domenie rozgłoszeniowej, co ona sama, i zasadniczo staje się własnym serwerem DNS.
Zobacz Bonjour i Zeroconf, aby dowiedzieć się więcej.
O ile twoja aplikacja nie jest przeznaczona do sieci domowej / niezarządzanej, to znaczy bez lokalnego serwera DNS, po prostu go nie potrzebujesz.
źródło