有没有办法从 C# WPF 应用程序刷新 DNS 缓存? (在 XP、Vista、Win7 上)
有没有办法从 C# WPF 应用程序刷新 DNS 缓存?该应用程序可以在 XP、Vista 或 Windows 7 上运行。
Is there a way to flush the DNS cache from a C# WPF app? The application would be running on either XP, Vista, or Windows 7.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用 Microsoft 的“dnsapi.dll”中的函数。这将允许您完全以编程方式执行此操作:
我已经对此进行了测试,并且效果很好。
You can use a function from Microsoft's "dnsapi.dll". This will allow you to do this completely programmatically:
I have tested this and it works great.
这可能是穷人的解决方案,但您可以使用 System.Diagnostics.Process 启动 ipconfig /flushdns 。
This may be the poor-man's solution, but you could use
System.Diagnostics.Process
to launchipconfig /flushdns
.我在互联网上搜索,找不到刷新单个 DNS 条目的方法。致力于故障转移到备份数据中心的工作,这对我来说是需要的。我拆解了 DnsFlushResolverCacheEntry_W 并提出了下面的 p/invoke sig。我将 DnsQuery 方法与 QueryNoWireFlag 和 NoHostFile 标志一起使用。如果有任何结果,我会打电话
DnsFlushResolverCacheEntry_W。对于将来想要做同样事情的人来说,这可能是一个很好的信息
I searched on the internet and couldnt find away to flush a single dns entry. Working on something for failing over to backup datacenter this is needed for me. I dissembled the DnsFlushResolverCacheEntry_W and came up with the p/invoke sig below. I use the DnsQuery method with the QueryNoWireFlag and NoHostFile flag. If there are any results then I call
DnsFlushResolverCacheEntry_W. This might be good info for someone in the future looking to do the same
试试这个 -
Try this -
试试这个:
Try this :