Windows上的标准mDNS服务

awy*_*awy 20 mdns

Windows(某些现代风格)是否默认安装和/或运行mDNS服务器?如果是这样,那么如何动态地开始/停止宣传新服务呢?

如果没有标准,那么如何处理试图在该环境中运行多个mDNS服务器的冲突问题?

基本上,我想实现一个可以在Linux,Windows和Mac OS X上运行的服务,并且需要使用mDNS来宣传其zeroconf webserver位置.在Linux上我只使用avahi-publish(或安装配置文件).我猜测答案对于OS X来说是直截了当的.我很难找到Windows的信息.

Jen*_*ger 24

从Windows 10开始,Microsoft似乎朝着mDNS和dns-sd的本机Windows实现迈进了一步.

他们的第一次迭代导致mDNS网络泛滥:

Windows 10在其默认配置中将通过响应具有空响应数据包的所有mDNS请求来向其本地网络发送垃圾邮件.

并跟进:

此问题已在Windows 10 1511(10586)及更高版本中得到修复

最近的版本在各地都有所改进,Windows现在提供了一个dns-sd服务发现库,目前仅限于UWP应用程序.


Nic*_*lay 11

上次我需要一个,Apple的Windows Bonjour打印服务是我能找到的最方便的Windows mDNS客户端.只有5MB.

  • 我无法让它在最新版本的 Windows 10 上运行。我怀疑原因是 Windows 本身(一个名为 DNSCache 的进程)现在正在侦听端口 5353。 (3认同)

Fog*_*Day 6

不,Microsoft不直接支持Multicast-DNS.

但是,似乎有几个第三方替代方案:

  • 这个公认的答案在2014年是正确的,但Windows 10确实支持mDNS,因为其他一些答案会告诉您。 (2认同)

Zek*_*sie 5

现在也成功地使用 C++/WinRT 直接从 C++ 进行 dnssd 发现。从我们的角度来看,查询服务似乎更快、更可靠,并且可以让您轻松安装观察程序以在设备到达时收到通知等。当然,这仅限于支持 C++/WinRT 的 Windows 10 版本,它启动使用 10.0.17134.0(Windows 10,版本 1803)。

一个警告:我们注意到它不提供也不识别FQDN(尾随点)。因此,对于 Bonjour OR Avahi 会给出地址的设备mydevice.local.,Windows 会给出mydevice.local. 尝试mydevice.local.在 Windows 10 (1809) 下ping失败。