0

对于我的任务,我需要阻止一些主机名,但由于某些网站可能会使用不同的 IP 地址回复不同的 DNS 查询(例如,Google DNS 和任何其他 DNS 服务器),我想使用不同的 DNS 服务器解析相同的主机名获取尽可能多的 IP 地址。

简而言之:我想使用 DNS #A 将“example.com”解析为 IP,并使用 DNS #B 将“example.com”解析为 IP,而不对我的网络配置进行任何重大更改(或者更好的是不进行任何更改全部)。

我看过Poco::Net::DNSc-ares,但是它们似乎都使用 OS DNS 设置并且不允许将查询指向其他 DNS 服务器(如果我错了,请纠正我)。

4

1 回答 1

0

是的。DNS 是 TCP 协议之上的一种协议,因此您可以在任何可以发送和接收 TCP 数据包的地方进行 DNS 查询(假设没有防火墙规则可以防止这种或其他网络问题)。

但是,C++ 没有用于 DNS 协议的标准库。C++ 也没有用于发送或接收 TCP 数据包的标准库(尽管在 C++20 中考虑添加)。您可以依赖操作系统特定的 API 进行网络通信(或者一如既往,您可以使用包装系统 API 的库)。

于 2017-12-21T15:33:19.057 回答