Программно получить DNS-серверы хоста - PullRequest
10 голосов
/ 27 мая 2010

Используя C ++, я хотел бы получить DNS-серверы, используемые хостом для трех операционных систем: OS X, FreeBSD и Windows. Я хотел бы получить подтверждение того, что приведенные ниже подходы действительно являются лучшей практикой, а если нет, то превосходной альтернативой.

Заранее спасибо за помощь!

1 Ответ

9 голосов
/ 23 ноября 2010

Во многих системах Unix (Linux, BSD) вы можете использовать функции распознавателя для получения списка DNS-серверов: распознаватель man 3 .

После вызова res_init() структура резолвера инициализируется. Структура распознавателя хранит всю необходимую вам информацию. Список DNS-серверов хранится в записи структуры nsaddr_list.

Точную спецификацию структуры резольвера, скорее всего, можно найти в resolv.h.

Использование функций распознавателя является предпочтительным способом получения списка DNS-серверов. res_init(), скорее всего, заполнит структуру резолвера информацией, найденной в /etc/resolv.conf.

Также см. Использование resolv.h

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...