Как получить 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.