在 C++ 中以编程方式清除 Windows 和 Linux 中的单个 DNS 缓存条目
我想知道是否有一种方法可以在 Windows 和 Linux 中以编程方式清除单个 DNS 缓存条目。或者是否有其他方法可以强制 gethostbyname 调用不使用本地缓存。
清除整个缓存并不理想。
谢谢。
I am wondering if there is a way to programmatically clear a single DNS cache entry in both Windows and Linux. Or if there is some other way to force a gethostbyname call to not use the local cache.
Clearing the entire cache would not be ideal.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我依稀记得在设置了 AUTHORITATIVE 位的情况下向缓存发出请求。
你不能用 gethostbyname() 来做到这一点:你必须在 UDP 端口 53 上调用解析器。
I vaguely recall making the request to the cache with the AUTHORITATIVE bit set.
You can't do that with gethostbyname(): you have to call the resolver on UDP port 53.