- Проверено ipconfig.exe зависимости с использованием Зависимость Walker
- Найдено dnsapi.dll среди них
- Проверил экспортированные функции и обнаружил DnsFlushResolverCache
- Мелко просматривал веб-страницу и нашел свою подпись (только на официальном сайте были найдены ссылки, подобные этой: [MS.Docs]:Наборы API для Windows 8 ), то есть не общедоступный, поэтому полагающееся на него программное обеспечение не является надежным )
- Создана небольшая тестовая программа
test.c :
#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;
}
Выход :
e:\Work\Dev\StackOverflow\q052007372>"c:\Install\x86\Microsoft\Visual Studio Community\2015\vc\vcvarsall.bat" x64
e:\Work\Dev\StackOverflow\q052007372>dir /b
dnsapi_func_list.txt
test.c
e:\Work\Dev\StackOverflow\q052007372>cl /nologo test.c /link /OUT:test.exe
test.c
e:\Work\Dev\StackOverflow\q052007372>dir /b
dnsapi_func_list.txt
test.c
test.exe
test.obj
e:\Work\Dev\StackOverflow\q052007372>test.exe
DnsFlushResolverCache succeeded
Примечание : Даже если вызов функции завершился успешно, я не уверен, как проверить, сделал ли он то, что должен был сделать (или лучше: что, как следует из его названия, он должен делать, что, по-видимому, вам и нужно).
Дайте мне знать, как это работает.
@ EDIT0 :
Спасибо за информацию @TimJohnson !!Я слишком торопился посмотреть на вывод ipconfig /?
( [MS.Docs]: ipconfig ) (который у меня был в другом окне cmd : d) и заметил параметр:)
Он работает (кэш сильно обновлен, и я вижу различия до и после запуска программы) !!!