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

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

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

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

4 ответов


нет, Microsoft напрямую не поддерживает Многоадресную рассылку DNS.

однако, кажется, есть несколько сторонних альтернативы:


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

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

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

и:

эта проблема была исправлена в Windows 10 1511 (10586) и выше

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


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


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

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