Как получить список всех объявленных бонжур сервисов на всех доступных доменах?

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

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.

Другие вопросы по тегам