从主机名获取IP地址通常是通过调用getaddrinfo (实际上只是WspiapiGetAddrInfo的别名)来完成的。
我们看到了一些失败的案例。与此同时,失败:
ping {hostname}能够很好地解析主机名。ping -4 {hostname}也无法解析主机名,就像getaddrinfo一样。修复getaddrinfo和ping -4失败情况的解决方案是运行
ipconfig /flushdns上面的内容似乎表明,ping -4和getaddrinfo正在使用内部DNS缓存中的一个(显然是糟糕的)条目解析地址。
是否有办法以编程方式清除缓存(无论ipconfig /flushdns做什么),或者更好的是,getaddrinfo没有使用缓存?
发布于 2019-07-15 20:40:21
有没有办法以编程方式清除缓存(无论ipconfig /flushdns做什么)
ipconfig /flushdns这样做:
typedef BOOL(WINAPI *DFRC)();
DFRC DnsFlushResolverCache;
HMODULE hDll = LoadLibrary(L"DnsApi.dll");
DnsFlushResolverCache = (DFRC)GetProcAddress(hDll, "DnsFlushResolverCache");
BOOL bRet = DnsFlushResolverCache();
// code...
FreeLibrary(hDll);https://stackoverflow.com/questions/57045819
复制相似问题