Windows上的标准mDNS服务

时间:2014-05-13 06:52:28

标签: mdns

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

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

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

6 个答案:

答案 0 :(得分:21)

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

他们的第一次迭代产生了mDNS network flooding

  

Windows 10在默认配置下会向其本地网络发送垃圾邮件   通过使用空响应数据包响应所有mDNS请求。

跟进:

  

此问题已在Windows 10 1511(10586)及更高版本

中修复

最近的版本在各地都有所改进,Windows现在提供dns-sd service discovery library,目前仅限于UWP应用。

答案 1 :(得分:11)

上次我需要一个,Apple的Bonjour Print Services for Windows是我能找到的最方便的Windows mDNS客户端。只有5MB。

答案 2 :(得分:6)

答案 3 :(得分:2)

Windows 10本机支持mDNS / Zeroconf,但仅适用于现代API,不适用于Win32应用程序。 如果您有这样的应用程序,则需要第三方服务。

来源:https://social.technet.microsoft.com/Forums/en-US/8a0346de-2296-4f46-bc36-ff3fb13e283b/builtin-mdnsdnssd-zeroconf-support-in-windows-10

答案 4 :(得分:1)

现在也已经直接从C ++成功地将C ++ / WinRT用于dnssd发现。从我们的角度来看,它似乎可以更快,更可靠地查询服务,并使您可以轻松地安装观察程序以在设备到达等情况下获得通知。当然,这仅限于支持C ++ / WinRT的Windows 10版本带有10.0.17134.0(Windows 10,版本1803)。

一个警告:我们注意到它没有提供也没有识别出FQDN(后缀点)。因此,对于Bonjour或Avahi将提供地址mydevice.local.的设备,Windows将提供mydevice.local。在Windows 10(1809)下尝试ping mydevice.local.失败。

答案 5 :(得分:-1)

简短的回答是支持Avahi和Bonjour。无论如何,您都需要Bonjour支持才能在OSX上运行,如果Windows用户安装了iTunes,他们就已经在运行它了。

作为不运行iTunes的Windows用户的后备,您可以将Avahi编译为Windows库(需要付出一些努力)并将其捆绑。这是一个非常重要的包装,但另一种方法是要求Windows用户安装iTunes以便使用您的应用程序。

相关问题