как получить DNS сервер в c-ares

я использую с-ар-1.10.0
которая является C-библиотекой для асинхронных DNS-запросов, это хорошая библиотека для разрешения имен ~
Теперь у меня есть вопрос, когда я использую c-ares ~

в «/etc/resolv.conf»such as есть несколько серверов имен
nameserver 1.1.1.1
nameserver 2.2.2.2

Я хочу получить DNS-сервер, который c-ares используется для выполнения DNS-запроса, 1.1.1.1 или 2.2.2.2 ,
Но я не могу найти API в c-ares docs ~
Кто-нибудь знает, как получить 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))

функционировать, как члены struct ares_optionхотя я считаю, что он может содержать только адреса серверов IPv4, а ares_get_servers () может предоставить вам оба сервера IPv4 / IPv6.

0

Другие решения

Других решений пока нет …