Windows 会将我们访问过的 DNS 条目缓存下来供下次解析该域名时使用, 我们可以通过在注册表添加一下项目老控制 Cache 的有效期
HKEY_CURRENT_USER/SOFTWARE/Microsoft/Windows/CurrentVersion/Internet Settings
Value Name: DnsCacheTimeout Data Type: REG_DWORD Radix: Decimal Value: (time in seconds)
Value Name: ServerInfoTimeOut Data Type: REG_DWORD Radix: Decimal Value: (time in seconds)
但是有时候我们不能随意改变用户机器中的相关设定,而且我们也只是需要在特定情况下立即刷新本地 DNS 缓存,查阅 MSDN 后没有找到相关方法。Windows 的组件 ipconfig.exe 提供了一个刷新 DNS 的命令行参数,"ipconfig /flushdns". 于是跟踪 ipconfig.exe 看看它在 flushdns 的时候到底使用了什么方法。最后发现它调用 DNSAPI.DnsFlushResolverCache 来 flushdns。
本文介绍如何通过修改注册表设置来控制Windows中DNS缓存的有效期,并提供了即时清除DNS缓存的方法,即使用ipconfig.exe的/flushdns参数,该参数最终调用了DNSAPI.DnsFlushResolverCache函数。

被折叠的 条评论
为什么被折叠?



