Хочу получить mx-запись о хосте путём опроса DNS-сервера. С протоколом разобрался. В сеть я выхожу через локалку, юзаю сетевой DNS-сервер. Его и опрашиваю, всё работает. Однако это частный случай, какой адрес сервера использовать в проге? Можно ли "зашить" какой-нибудь интернет-адрес DNS-сервера?
рут сервера зашей - от них уже будешь получать рут сервера TLD в которой интересующий домен, от рут серверов TLD - NS сервер домена, а оттуда уже МХ запись. При этом, учитывай, что МХ записи как правило отдаются комплексно - то есть, несколько серверов, на каждом из них по нескольку айпишников и все в одном пакете ну и преференции конечно для каждого сервера.
Ну несколько записей это понятно, я их перебором =) А это что? Такое поле в пакете я видел, идёт в секции ответа, но что оно значит - хз. ЫЫЫ. А попроще никак?
да, корневых. a.root-... b.root-... и т.п. так оно и делается. Сам список легко в нете находится. Например тут: http://www.root-servers.org/
Хе. Как я понял всё что ты описал, это должен делать сам DNS-сервер, если у него нет записи об этом домене. infern0 спасибо.
n0name юзай ф-цию dnsapi!DnsQuery_A, она сама определит аддресс DNS-сервера который используется для текущего соединения с интернетом и отправит запрос ему
DnsQuery хучится всеми кому не лень (на всякий случай ) - гораздо удобнее юзать GetNetworkParams - там вполне вменяемая структурка заполняется по вызову, включая данные по DNS серверам (провайдерским, то есть).