Как Bonjour обнаруживать устройства в сети? - PullRequest
12 голосов
/ 25 января 2012

Я хочу написать программу на C, которая может выполнять поиск устройств с поддержкой Bonjour в сети.

В основном у нас есть сетевая IP-камера, она поддерживает протокол Bonjour.Я хочу написать API на C, который может искать эти устройства с включенным Bonjour.У кого-нибудь есть пример кода или предложения, как мне это сделать?

1 Ответ

7 голосов
/ 25 января 2012

Следующие ссылки предоставляют некоторые примеры кода, как вы просили:

mDNSResponder

Цитаты из mDNSPosix / ReadMe.txt:

mDNSPosix - это порт многоадресной службы обнаружения DNS и DNS службы Apple. код для платформ Posix.

Multicast DNS и DNS Service Discovery - это технологии, которые позволяют вам зарегистрировать IP-сервисы и просматривать сеть для тех, услуги.

Упаковочный лист:

В примере используются следующие каталоги:

o mDNSCore - каталог, содержащий основной код mDNS. Этот код
написан на чистом ANSI C и оказался очень переносимым. каждый платформе нужен код основного ядра протокола.

o mDNSShared - каталог, содержащий полезный код, который не является основным для сам механизм основного протокола, но тем не менее полезный и используемый
более одной (но не обязательно всех) платформ.

o mDNSPosix - файлы, специфичные для платформ Posix: Linux, Solaris, FreeBSD, NetBSD, OpenBSD и т. Д. Этот код также будет работать на
OS X, хотя это не его основное назначение.

o Клиенты - Пример кода клиента, показывающего, как использовать API для
услуги, предоставляемые демоном.

Использование образца ---------------- При компиляции вы получите:

o Основные продукты общего назначения (например, на настольном компьютере): - mdnsd - libmdns - nss_mdns (для получения важной информации о nss_mdns см. nss_ReadMe.txt)

o Автономные продукты для выделенных устройств (принтер, сетевая камера, и др.) - mDNSClientPosix - mDNSResponderPosix - mDNSProxyResponderPosix

o Инструменты тестирования и отладки - инструмент командной строки dns-sd (из папки «Клиенты») - mDNSNetMonitor - mDNSIdentify

SDWrap

ReadMe:

Довольно простое приложение-оболочка для выполнения какой-либо команды с помощью Zeroconf. предоставленные адреса и порты. Использует wxWidgets и wxServDisc для обнаружение службы ...

Удачи!

...