在Windows中,是否有用于检索DNS缓存内容的API。我的一所大学问我这个问题,但到目前为止,我已经查看了MSDN并搜索了网页,但我找不到任何相关信息。他目前的解决方案是解析ipconfig / displaydns的输出,但我确信有更好的方法。 ipconfig如何读取缓存中的内容?
答案 0 :(得分:6)
使用DnsQuery查询选项调用的DNS_QUERY_NO_WIRE_QUERY函数允许您在缓存中查找特定条目。这可能就足够了,具体取决于您的具体操作。似乎没有任何记录的方式来枚举条目。
看看ipconfig.exe,它似乎使用了几个未记录的函数,特别是DnsGetCacheDataTable。关于此函数名称的Google搜索生成this code似乎有效,但需要更正一行;将typedef更改为:
typedef int(WINAPI *DNS_GET_CACHE_DATA_TABLE)(PDNSCACHEENTRY);