Windows(一部の最新のフレーバー)には、デフォルトでmDNSサーバーがインストールおよび/または実行されていますか?もしそうなら、新しいサービスの広告を開始/停止するように、できれば動的にどのように伝えるのですか?
標準がない場合、その環境で複数のmDNSサーバーを実行しようとする競合の問題にどのように対処しますか?
基本的に、Linux、Windows、およびMac OS Xで実行され、mDNSを使用してzeroconf Webサーバーの場所をアドバタイズする必要があるサービスを実装します。 Linuxでは、avahi-publishを使用します(または構成ファイルをインストールします)。 OS Xの答えは簡単だと思います。Windowsの情報を見つけるのに苦労しています。
いいえ、MicrosoftはマルチキャストDNSを直接サポートしていません。
ただし、いくつかのサードパーティの代替手段があるようです。
Windows 10以降、MicrosoftはmDNSおよびdns-sdのネイティブWindows実装に向けて前進しているようです。
最初のイテレーションでは mDNSネットワークフラッディング :
Windows 10は、デフォルト構成では、すべてのmDNS要求にヌル応答パケットで応答することにより、ローカルネットワークをスパムします。
そしてフォローアップ:
この問題は、Windows 10 1511(10586)以降で修正されました
最近のビルドでは、至る所で改善が見られ、Windowsは現在、 dns-sdサービス検出ライブラリ を提供しています。これは、現在UWPアプリに限定されています。
前回必要だったAppleの Windows用のBonjour印刷サービス は、私が見つけることができるWindows用の最も便利なmDNSクライアントでした。わずか5MB。
また、C++から直接dnssdディスカバリーにC++/WinRTを使用することに成功しました。私たちの観点からは、クエリサービスに対してより速く、より信頼性が高く、ウォッチャーを簡単にインストールして、デバイスが到着したときなどに通知を受け取ることができます。もちろん、これは、C++/WinRT 10.0.17134.0(Windows 10、バージョン1803)。
注意点: [〜#〜] fqdn [〜#〜] (末尾のドット)を提供または認識しないことに気付きました。そのため、Bonjour OR Avahiはmydevice.local.
、Windowsは代わりにmydevice.local
。 pingの試行mydevice.local.
Windows 10(1809)で失敗します。
Windows 10はネイティブにmDNS/Zeroconfをサポートしていますが、Win32アプリケーションではなく、最新のAPIのみをサポートしています。そのようなアプリケーションがある場合、サードパーティのサービスが必要です。