Linux
Linuxの場合、「nsswitch.conf」に記述することで「hosts」ファイルと「DNSサーバ」のどちらを優先するか設定することが出来ます。
hosts:files dns
「nsswitch.conf」に上記のように記述があれば、「hosts」ファイルで名前解決を行い、出来なければ「DNSサーバ」へ名前解決しにいきます。
Windows
Windowsの場合、そもそも「host.conf」が無いため優先順位を設定することができません。
そのため、「hosts」ファイル>「DNSサーバ」の順に優先されます。
hostsファイルの場所
Windows OSのバージョンに関わらず、共通して以下のようです。
「C:\Windows\System32\drivers\etc\hosts」
hostsファイルの編集・動作確認
127.0.0.1 localhost hogehoge #::1 localhost
上記のようにhostsファイルを設定していたとします。
この状態でコマンドプロンプトからpingをhogehogeに飛ばしてみます。
ping hogehoge
飛んでいきました。
次はオプション指定して「IPv4」、「IPv6」でそれぞれpingをhogehogeに飛ばしてみます。
ping -4 hogehoge ping -6 hogehoge
「IPv4」ではhogehogeがホスト名として認識されましたが、
「IPv6」ではhostsファイルの「::1」がコメントアウトされており、ホスト名が設定されていない扱いとなり認識されませんでした。