WindowsNTホストファイルwindows\system32\drivers\etc\hosts
に重複するエントリがあってはならないことは知っていますが、それらがある場合に予想される動作は何ですか?
Windows NTホストファイル(windows\system32\drivers\etc\hosts
)には、ホスト名は同じでアドレスが異なる複数のエントリを含めることができます。ネットワーク上のそのホストにアクセスすると、WindowsDNSシステムはそれをそれらのエントリの1つに解決します。どのエントリが使用されるかをどのように確認できますか?
例えば。:
127.0.0.1 mydomain.com
192.168.1.1 mydomain.com
編集:この特定の例は、特別な動作を強制しているようです。ループバックは、順序に関係なく、すべてのエントリを上書きするようです。
または:
192.168.1.2 mydomain.com
192.168.1.1 mydomain.com
リストの最初のエントリが優先されます。
しかし、私が見ている動作は保証されていますか、それはバージョン固有ですか、それとも一般的に信頼できませんか?
私が尋ねる理由は、ホストを処理するためのスクリプトをいくつか作成していて、それらの1つを確実に選択して削除/コメントアウトでき、ユーザーのシステムに影響がないことを期待できるかどうかを判断しようとしているためです。
同じドメイン名の複数のエントリが許可され、一部のシナリオで役立ちます。
私の質問で説明したように、これらのアドレスが同じアダプタで到達可能である「通常の」ケースでは、最初のアドレスが取得されたもののようです。それらのエントリの1つがループバックの場合(127.0.0.1
)、しかしそれは優先されるかもしれません。
ループバックアダプタへのアドレスがない場合でも、同じドメイン名で複数のエントリを使用することが理にかなっている場合があります コンピュータがマルチホームまたはマルチアドレス可能の場合 。 (私のOPのコメントの情報をありがとう JdeBP )。
各アドレスが別々の行にマップされて使用されている場合、単一のDNSホスト名が複数のIPアドレスに対応する可能性があります。たとえば、次のマルチホームまたはマルチアドレス指定可能なDNSホストコンピューターの行を追加できます。
10.0.0.1 Host-a.example.Microsoft.com
10.0.0.2 Host-a.example.Microsoft.com
10.0.0.3 Host-a.example.Microsoft.com
アダプターの設定/優先度がここで役割を果たす可能性があると思います(ネットワーク設定で設定できます)が、テストすることはできません。ほとんどの場合、アダプターの設定ではループバックが最初になります。
最初のものだけが読み取られます。名前が解決されると、ファイルの読み取りは行われません。
私は5分前に試しましたが、Windowsホストファイルへの次の方法でDNSサーバーなしで実行されます。
ip1、ip2、ipx name_to_resolve
申し訳ありませんが私の英語...
>ループバックは、順序に関係なく、すべてのエントリを上書きするようです。
変更を加えた後、必ずクライアント(ブラウザー?)を閉じて再実行しましたか?そうしないと、古い値が引き続き使用され、再起動されるまで順番に変更が表示されない可能性があります。さらに、DNSクライアントサービスを実行している場合、古い値がキャッシュされるため、変更は表示されません。
いくつかのテストを行いましたが、最初のエントリが常に使用されているようです。
クライアントを再起動して、HOSTSファイルを再読み取りしていることを確認してください。また、DNSクライアントサービスを実行している場合は、ipconfig /flushdns
も実行してください。