WinINet库会为访问的任何URL缓存IP地址。因此,当该URL的IP地址发生更改时,WinInet库的HttpSendRequest
仍然会使用旧的IP地址。
而且,如果旧的IP地址响应,则WinINet将仅向旧的IP地址发送所有http请求。
是否有任何方法可以强制清除WinInet的DNS缓存?
或者
是否有任何办法可以强制WinINet将HTTP请求发送到指定的IP地址(因为我们可以使用gethostbyname()
获取更新的IP)?
注意:
- gethostbyname给我提供了新的IP地址,所以这是WinINet缓存的行为。
- 我尝试过这篇MS文章中建议的“方法2”,但没有帮助
- 示例代码
ipconfig /flushdns
- Tomipconfig /flushdns
只会清除系统 DNS 缓存。但 WinInet 会维护自己的 DNS 缓存,该命令无法清除它。 - Pradeep