我正在考虑进行一项实验,以不同方式跟踪 DNS 值(例如它们更改的频率等)。为此,我需要能够直接向服务器发出 DNS 请求,以便 1) 我知道它来自哪个服务器,2) 我可以请求来自多个服务器的响应,以及 3) 我可以避免本地操作系统运行缓存.
有谁知道可以让我直接查询 DNS 服务器的库(按优先顺序排列的 c#、D、C、C++)?如果做不到,有没有人知道一个简单的方法了解我可以从中实现此类系统的 DNS 协议(protocol)的描述?
最佳答案
我只有 C 的经验,所以这是我的列表:
libresolv 是旧的、传统的和标准的方式。它在每个 Unix 上都可用(键入
man 3 resolver
)并包括像这样的例程res_query
或多或少可以满足您的需求。要查询特定名称服务器,您通常会更新全局变量_res.nsaddr_list
(请注意,显然是 does not work with IPv6)。ldns是现代而 Shiny 的解决方案。你有good documentation online .
一个非常常见但显然无人维护的库是 adns .
关于dns - 执行直接 DNS 查找的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/907528/