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

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

Ответ 1

Старый поток, но есть способ найти локальные службы Обнаружение всех рекламируемых типов услуг Bonjour. Вам нужно будет сделать некоторые манипуляции с результатами, чтобы получить типы в правильном формате. Это работает на Mac и iPhone, хотя никаких служб не обнаружено, если у меня нет Wi-Fi-соединения на iPhone.

    NSNetServiceBrowser* domainBrowser = [[NSNetServiceBrowser alloc] init];
    domainBrowser.delegate = self;
    [domainBrowser searchForServicesOfType:@"_services._dns-sd._udp."
                              inDomain:@"local."];

Ответ 2

Насколько я знаю, нет функции, которая будет искать все доступные сервисы. Причина, вероятно, связана с тем, что приложение, публикующее службу, может определить свой собственный тип сервиса.

Если вы ищете только службы общих типов (HTTP, принтер и т.д.), вы можете легко создать цикл для вызова -[instanceOfNSNetServiceBrowser searchForServicesOfType:inDomain:] со всеми типами, которые вы хотите, во всех доменах, которые вы ранее обнаружили.

раздел руководства разработчиков по настройке NSNetService также может быть полезен.