Windows 10で.localアドレスを解決する方法を探しています。
Windows自体にもmDNSサポートが含まれていますが、これはModern APIアプリケーションでのみ使用できるようです。
これまで、アドバイスは常にAppleのBonjourをインストールすることでした。たとえば、 WindowsでmDNSを有効にする方法(7) です。残念ながら、それはもはや機能していないようです。
私の知る限り、問題はWindows独自のプロセスの1つであるDNSCacheがポート5353でリッスンしていることです。
MDNSを非モダンアプリケーションで機能させるにはどうすればよいですか?
質問を投稿した後、答えの分を見つけました。
解決策は、まずWindowsでmDNSを無効にすることです。これはレジストリで行う必要があります。いつものように、標準の警告が適用されます。レジストリの編集は気弱な人には向いておらず、誤って行うと、修復できないほどWindowsのインストールに損傷を与える可能性があります。
レジストリキーComputer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClientに移動します。キーが存在しない場合は、作成する必要がある場合があります。
次に、値EnableMulticastをREG_DWORDとして、値0で追加します。
リブート。
次にBonjourをインストールします。このハックの後、mDNSは期待どおりに機能します。
Windows 10およびWindows Server 2016のドキュメントのグループポリシーホーム によると、リンクローカルマルチキャスト名前解決(LLMNR)をオフにする _DNSClient::EnableMulticast
_ポリシー設定。
次の手順に従って、DNSClient :: EnableMulticastポリシー設定を有効にすると、LLMNRを無効にできます。
regedit
と入力し、次に[〜#〜] ok [〜#〜]をクリックします。レジストリパスでDNSClient
サブキーを見つけてクリックします。_HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\
_
DNSClient
サブキーが存在しない場合は、_Windows NT
_サブキーを右クリックして、新しいレジストリキーを作成します。DNSClient
という名前を付けます。DNSClient
サブキーを右クリックします。
EnableMulticast
という名前を付けます。EnableMulticast
をダブルクリックして、_0
_で値を編集しますこのプロセスでバッチファイルを長く作成し、管理者として実行する場合:
enable_mdns.bat
_ファイルを作成します。_REG ADD "HKLM\Software\Policies\Microsoft\Windows NT\DNSClient" /V "EnableMulticast" /D "0" /T REG_DWORD /F
_
.bat
_ファイルを実行します。