如何在 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 服务器的主要内容,如果未能解决你的问题,请参考以下文章