
私は Windows 7 Home Premium 64 ビットを実行しています。今日から、DNS 解決が%SYSTEMROOT%\System32\drivers\etc\hosts
ファイルを読み取らないことに気付きました。ファイルに 2 つの新しいエントリを追加し、コマンド ラインで「nslookup」を実行しても解決されないため、このようになります。さらに、「localhost」を解決しようとすると、プライマリ DNS サーバーが照会されます。
ファイルが破損している可能性があるため、ファイルを移動して新しいファイルを作成するように勧めるスレッドをいくつか読みました。それを実行しましたが、改善はありませんでした。
DNS 解決に使用されるリソースのシーケンスを制御するレジストリ キーのようなものはありますか (Unix の nsswitch.conf に似ています)? 他に何が原因として考えられますか?
答え1
実行するとnslookup
アドレスにDNSサーバーを照会し、ホストファイル常に。ただし、実際に接続するときには、ホスト ファイルの値が使用されます。example.com をホスト ファイルに追加して、127.0.0.1 を指すようにしてください。nslookup
: を実行すると、実際の IP アドレスに解決されます。ping を実行します。ローカルホストが応答します。
C:\>nslookup example.com
Server:
Address: 10.110.5.1
Non-authoritative answer:
Name: example.com
Address: 192.0.32.10
C:\>ping example.com
Pinging example.com [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
C:\>
答え2
Windows 7 x64 でホスト ファイルを動作させることができませんでした。厄介なのは、まったく同じ設定で x86 でも動作することです。
そこで、特定のプログラムから特定のサイトへのアクセスをブロックする必要があったので、無料の ZoneAlarm Personal Firewall を使用しました。これが最も洗練されていない解決策であることは承知していますが、私にとってこの状況を回避する方法は見つかりませんでした。
私の場合、いくつかのバージョンを試し、文字エンコードを変更したにもかかわらず、両方とも hosts ファイルを無視しましたが、成功しませんでしたping
。nslookup
私が使用した解決策が他の人にも役立つかどうかはわかりませんが、この解決策が存在し、機能するということをお知らせしたいと思いました。
答え3
私は長い間、ウイルス対策ソフトか何かが原因だと思い、この問題に悩まされていました。実際、私の編集者は、メモ帳ファイル名に .txt 拡張子を追加したため、システムからは見えなくなりました。
拡張子を確認してください。空になっているはずです。Hosts ファイルをデフォルトに戻すにはどうすればよいですか?これにより、ホスト ファイルが元の状態にリセットされます。
答え4
私も同じ問題を抱えていましたが、Win 7 ではこれがうまくいきました。
新しいエントリを hosts ファイルに追加する場合は、タブを使用せず、すべてスペースのみを使用するようにしてください。
それでうまくいきました。