一 代码
#include <stdio.h>
#include <Windows.h>
typedef BOOL (WINAPI *DnsFlushResolverCacheFuncPtr)();
int main() {
HMODULE dnsapi = LoadLibrary("dnsapi.dll");
if (dnsapi == NULL) {
printf("Failed loading module: %d\n", GetLastError());
return -1;
}
DnsFlushResolverCacheFuncPtr DnsFlushResolverCache =
(DnsFlushResolverCacheFuncPtr)GetProcAddress(dnsapi, "DnsFlushResolverCache");
if (DnsFlushResolverCache == NULL) {
printf("Failed loading function: %d\n", GetLastError());
FreeLibrary(dnsapi);
return -2;
}
BOOL result = DnsFlushResolverCache();
if (result) {
printf("DnsFlushResolverCache succeeded\n");
} else {
printf("DnsFlushResolverCache succeeded: %d\n", GetLastError());
}
FreeLibrary(dnsapi);
return 0;
}
二 链接
stackoverflow - How to Clear/Flush the DNS Cache in Win32 API's

本文提供了一段使用C语言编写的代码,该代码利用Windows API中的DnsFlushResolverCache函数来清除本地DNS缓存。通过加载dnsapi.dll动态链接库并调用其内部的DnsFlushResolverCache函数实现这一功能,适用于需要手动清理DNS缓存以解决网络问题的场景。
1万+

被折叠的 条评论
为什么被折叠?



