Подтвердить что ты не робот

Стандартная услуга mDNS в Windows

Есть ли у Windows (какой-то современный вкус) сервер mDNS и/или работает по умолчанию? Если да, то как сказать, желательно динамически, начать/прекратить рекламу новой услуги?

Если стандартного нет, то как решить проблему конфликтов, пытающихся запустить несколько серверов mDNS в этой среде?

В принципе, я хочу реализовать службу, которая будет работать в Linux, Windows и Mac OS X и которая должна рекламировать местоположение веб-сервера zeroconf с использованием mDNS. В Linux я просто использую avahi-publish (или устанавливаю файл конфигурации). Я предполагаю, что ответ будет прост для OS X. Я изо всех сил пытаюсь найти информацию для Windows.

4b9b3361

Ответ 1

Нет, Microsoft напрямую не поддерживает Multicast-DNS.

Однако существует несколько сторонних альтернатив:

Ответ 2

Начиная с Windows 10, Microsoft, похоже, делает шаги к нативной реализации Windows mDNS и dns-sd.

Их первая итерация привела к затоплению сети mDNS:

Windows 10 в конфигурации по умолчанию будет спамить в локальных сетях отвечая на все запросы mDNS пустыми ответными пакетами.

И в продолжение:

Эта проблема была исправлена в Windows 10 1511 (10586) и более поздних версиях

В последних сборках произошли улучшения повсеместно, и теперь Windows предлагает библиотеку обнаружения службы dns-sd, которая в настоящее время ограничена приложениями UWP.

Ответ 3

В прошлый раз, когда я нуждался в нем, Apple Bonjour Print Services для Windows был самым удобным клиентом mDNS для Windows, который я мог найти. Только 5 МБ.

Ответ 4

Также успешно использовали C++/WinRT для открытия dnssd прямо из C++. С нашей точки зрения, он быстрее и надежнее запрашивает службы и позволит вам легко установить наблюдатель для получения уведомлений о прибытии устройств и т.д. Конечно, это ограничено версиями Windows 10 с поддержкой C++/WinRT, которая начинается с 10.0.17134.0 (Windows 10, версия 1803).

Одно предостережение: мы заметили, что он не предоставляет и не распознает FQDN (конечная точка). Таким образом, для устройства, которое Bonjour ИЛИ Avahi даст адрес mydevice.local., Windows вместо этого дает mydevice.local. Попытка пропинговать mydevice.local. под Windows 10 (1809) не удалась.

Ответ 6

Короткий ответ заключается в поддержке как Avahi, так и Bonjour. Вам понадобится поддержка Bonjour для работы на OSX в любом случае, и если пользователь Windows установит iTunes, они уже будут запускать его.

В качестве резервной копии для пользователей Windows, не работающих с iTunes, вы можете скомпилировать Avahi как библиотеку для Windows (с небольшими усилиями) и расслоить ее. Это нетривиальный бит упаковки, но альтернатива требует от ваших пользователей Windows установки iTunes для использования вашего приложения.