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

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

в /etc/resolv.conf есть несколько серверов имен, таких как 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.

Другие вопросы по тегам