Стандартная служба 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 для использования вашего приложения.