如何在 c-ares 中获取 DNS 服务器

Posted

技术标签:

【中文标题】如何在 c-ares 中获取 DNS 服务器【英文标题】:how to get DNS server in c-ares 【发布时间】:2014-04-22 12:42:52 【问题描述】:

我正在使用c-ares-1.10.0 这是一个用于异步DNS请求的C库,是一个很好的名称解析库~ 现在我用c-ares的时候有个问题~

“/etc/resolv.conf”中有多个名称服务器 如 名称服务器 1.1.1.1 域名服务器 2.2.2.2

我想获取c-ares用来做dns查询的dns服务器,1.1.1.1或者2.2.2.2, 但是在c-ares docs里找不到API~ 有谁知道如何获取dns服务器吗?

【问题讨论】:

【参考方案1】:

使用 ares.h 中的这个函数:

CARES_EXTERN int ares_get_servers(ares_channel channel,
                                  struct ares_addr_node **servers);

服务器也可以通过

  int ares_save_options(ares_channel channel, struct ares_options *options, int *optmask)) 

function ,作为struct ares_option的成员,虽然我认为它只能包含IPv4服务器地址,而 ares_get_servers() 可以同时为你提供IPv4/IPv6服务器。

【讨论】:

Ths,但是函数“ares_get_servers”获取所有服务器,我想在调用 ares_gethostbyname 时获取“c-ares”进行查询的名称服务器 @user3282867 好的。您无法获得该信息。

以上是关于如何在 c-ares 中获取 DNS 服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中获取DNS信息[重复]

如何在SQL注入中使用DNS技术获取数据

DHCP如何添加备用DNS

gcc/cygwin如何获取DNS服务器?

如何找到当前的 DNS 服务器?

如何使用 Strophe JS 获取 DNS SRV 记录?