首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WinSock getaddrinfo从主机名获取IP失败,直到调用ipconfig /flushdns为止。

问WinSock getaddrinfo从主机名获取IP失败,直到调用ipconfig /flushdns为止。
EN

Stack Overflow用户
提问于 2019-07-15 19:08:10
回答 1查看 317关注 0票数 2

从主机名获取IP地址通常是通过调用getaddrinfo (实际上只是WspiapiGetAddrInfo的别名)来完成的。

我们看到了一些失败的案例。与此同时,失败:

  • ping {hostname}能够很好地解析主机名。
  • ping -4 {hostname}也无法解析主机名,就像getaddrinfo一样。

修复getaddrinfo和ping -4失败情况的解决方案是运行

代码语言:javascript
复制
ipconfig /flushdns

上面的内容似乎表明,ping -4和getaddrinfo正在使用内部DNS缓存中的一个(显然是糟糕的)条目解析地址。

是否有办法以编程方式清除缓存(无论ipconfig /flushdns做什么),或者更好的是,getaddrinfo没有使用缓存?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-15 20:40:21

有没有办法以编程方式清除缓存(无论ipconfig /flushdns做什么)

ipconfig /flushdns这样做:

代码语言:javascript
复制
typedef BOOL(WINAPI *DFRC)();
DFRC DnsFlushResolverCache;
HMODULE hDll = LoadLibrary(L"DnsApi.dll");
DnsFlushResolverCache = (DFRC)GetProcAddress(hDll, "DnsFlushResolverCache");
BOOL bRet = DnsFlushResolverCache();
// code...
FreeLibrary(hDll);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57045819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档