Как получить адрес DNS-сервера, который запрашивает getaddrinfo - PullRequest
0 голосов
/ 27 ноября 2009

Я новичок в программировании сокетов BSD на C. Я могу запросить веб-адрес, чтобы получить связанные с ним ip-адреса с помощью функции "getaddrinfo". Но я хочу знать, с какого DNS-сервера getaddrinfo запрашивает эту информацию.

Ответы [ 3 ]

1 голос
/ 27 ноября 2009

Если вы работаете на linux или на платформе unix, попробуйте поискать man -k resolver и поищите справочную страницу resolver или страницу для функций, таких как res_init, res_search, et. и др. Это API-интерфейсы Unix для DNS, и, похоже, что прямого способа сделать то, что вы хотите сделать, нет, можно было бы получить информацию с помощью комбинации функций и того, что они возвращают, и выполнить несколько других операций с массивами данных. .

Что касается Wireshark, зная, что происходит, он на самом деле не знает. Это просто мониторинг пакетов по мере их поступления и распечатка того, что он видит. Решатель - это то, что знает, и именно этот API я предложил.

0 голосов
/ 27 ноября 2009

Если вы работаете в Linux, вы можете посмотреть на источник, чтобы «копать». Основываясь на его способности распечатать адрес сервера, я думаю, что для этого должны быть какие-то средства, кроме простого анализа /etc/resolv.conf.

В Windows есть очень замысловатый API для этой цели.

0 голосов
/ 27 ноября 2009

Я не думаю, что вы можете узнать, какой он использовал, но он использует один из /etc/resolv.conf

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