dns - 执行直接 DNS 查找的代码

标签 dns network-protocols

我正在考虑进行一项实验,以不同方式跟踪 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/

相关文章:

firewall - 如何编写代码以与 Skype 类似的方式通过 NAT?

http - 防火墙是否会阻止端口 80 上的非 HTTP 流量?

c - 为什么 gethostbyname() 在不存在的主机名上不会失败?

dns - 使用 CNAME DNS 条目调用 AWS Lambda 函数

kubernetes - DNS服务在Kubernetes中如何工作?

azure - 配置多个 IP 地址指向 azure webapp

Couchdb 复制 : which protocol is used?

javascript - Socket.IO初始数据包

dns - 如何使用 openshift 创建 mx 记录?

sockets - Opera-Mini 使用什么协议(protocol)进行 Socket 通信?