Как получить список всех объявленных бонжур сервисов на всех доступных доменах?
Это не проблема, чтобы искать во всех доменах, но я не могу найти правильный способ для поиска какой-либо службы в сети.
2 ответа
Старый поток, но есть способ найти местные сервисы. Обнаружение всех рекламируемых типов сервисов Bonjour. Вам нужно будет сделать некоторые манипуляции с результатами, чтобы получить типы в правильном формате. Это работает на Mac и iPhone, хотя никаких сервисов не обнаружено, если у меня нет подключения к Wi-Fi на iPhone.
NSNetServiceBrowser* domainBrowser = [[NSNetServiceBrowser alloc] init];
domainBrowser.delegate = self;
[domainBrowser searchForServicesOfType:@"_services._dns-sd._udp."
inDomain:@"local."];
Насколько мне известно, нет функции, которая будет искать все доступные услуги. Причина, вероятно, в том, что приложение, публикующее сервис, может определить свой собственный тип сервиса.
Если вы ищете только службы общих типов (HTTP, принтер и т. Д.), Вы можете легко создать цикл для вызова -[instanceOfNSNetServiceBrowser searchForServicesOfType:inDomain:]
со всеми типами, которые вы хотите, во всех доменах, которые вы ранее обнаружили.
Также может помочь раздел документации для разработчиков по настройке NSNetService.