web-dev-qa-db-ja.com

DNSキャッシュはWindows8.1のどこにありますか?

DNSキャッシュ、特にipconfig /flushdnsコマンドについて読んでいます。 DNSキャッシュとは何かを説明する多くのリソース(QA、ブログ、サイト)がありますが、どれもwhere DNSキャッシュは私のWindows8.1マシンにあります。正しく理解できれば、次のようなマッピングを含むファイルになります。

example.com 123.123.123.123
foo.net 123.123.0.0

ipconfig /flushdnsを実行する前に、そのDNSキャッシュファイルを確認したいと思います。自分のマシンのどこにありますか?

1
Green

DNSキャッシュを確認したい場合は、最近のバージョンのMicrosoftWindowsがIPConfig /displaydnsをサポートしています。

(Windows98がそれをサポートしたとは思いません。Win98もipconfig /flushdnsをサポートしていませんでした。両方のオプションが同じバージョンのMicrosoftWindowsに追加されたと思います。)

これは、そのような情報を表示するための一般的で簡単な方法です。

この情報がどのファイルに保存されているかはわかりません。有効期限も追跡していると確信しているため、表示されているHOSTSのような形式を使用していないことは間違いありません。 Process Explorerを使用すると、IPConfig/displaydnsを使用するときにアクセスされるファイルを見つけるのに役立つ場合があります。

2
TOOGAM

他の人が言ったことをバックアップするために、Process Hackerを使用してsvchost.exe内の文字列を検索すると、メモリに保存されているエントリを確認できます。例えば。

enter image description here

単にipconfig /displaydnsを使用するよりもはるかに有用性の低い出力です(必要に応じて、ipconfig /displaydns>output.txtを使用していつでもファイルに出力できます。

1
Jonno

キャッシュはメモリに保持される場合があり、ローカルDNSサービスはキャッシュファイルを保持しない場合がありますが、もう少しあります。

私のipconfig/displaydnsは、再起動の間にエントリを保持していました。ディスクのどこかに保存する必要があります。

今日、DNSの問題が発生し、古いVMを確認したところ、ローカルのDNSキャッシュに非常に古いエントリがいくつか見つかりました。これらは私の古い会社からのエントリであり、最初は彼らがハッキングしているのか、それともどういうわけか彼らのネットワークに接続しているのではないかと思いました。しかし、かなり前のVMからの私自身のエントリもいくつか含まれていました。

ipconfig/flushdnsはエントリをワイプしませんでした。 DNSサービスを停止して再起動してみました。助けにはならなかった。ルーターをインターネットから切断しましたが、エントリはまだ残っていました。それから、そのVMは昔からドメインコントローラーとDNSサーバーであったので、何かが正しくアンインストールされなかったのではないかと思いました。

Procman.exeを使用して、ping要求に応答するsvchost.exeのインスタンスを分離しました。 pingで、hostsファイルだけを開きました。愚かな私は、これをすべて開始する前に、hostsファイルをチェックする必要がありました。古いエントリはすべてhostsファイルにありました。そこでワイプされると、ipconfig/displaydnsには表示されませんでした。

ローカルDNSサービスを停止して再起動すると、既存のエントリが消去されるため、キャッシュメモリにのみ保持されていることが確認される傾向があります。しかし、はい、ローカルDNSを介してpingによって使用される永続的なipconfig dnsエントリは、c:\ windows\system32\drivers\etc\hostsにあります。

これが、これをトラブルシューティングしようとしている他の人に役立つことを願っています。

0
BobH2