简体   繁体   English

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

[英]how to get DNS server in c-ares

I'm using c-ares-1.10.0 which is a C library for asynchronous DNS requests ,it's a good lib to do name resolves~ Now I have a question when I use c-ares~ 我正在使用c-ares-1.10.0 ,这是一个用于异步DNS请求的C库,它是做好名称解析的好库〜现在我在使用c-ares时遇到一个问题〜

there is multi nameserver in "/etc/resolv.conf" such as nameserver 1.1.1.1 nameserver 2.2.2.2 “ /etc/resolv.conf”中有多个名称服务器,例如名称服务器1.1.1.1名称服务器2.2.2.2

I want to get Dns server which c-ares used to do dns query,1.1.1.1 or 2.2.2.2, But I can't find the API in c-ares docs~ Does any one know how to get dns server? 我想获得使用c-ares进行dns查询的Dns服务器(1.1.1.1或2.2.2.2),但是我无法在c-ares文档中找到API〜有人知道如何获取dns服务器吗?

Use this function from ares.h: 从ares.h使用此功能:

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

The servers can also be retrieved with the 也可以使用

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

function , as members of struct ares_option , though I believe that can only contain IPv4 server addresses, while ares_get_servers() can provide you with both IPv4/IPv6 servers. function,作为struct ares_option成员,尽管我认为只能包含IPv4服务器地址,而ares_get_servers()可以为您提供两个IPv4 / IPv6服务器。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM