Как запросить записи TXT и SRV из Windows?

Я пытаюсь запросить набор записей SRV, используя открытое имя хоста (например, _service._proto), однако это не удается, если я также не включу доменное имя. Это странно, потому что другие инструменты, такие как nslookup, работают нормально, а также, используя тот же вызов API для запроса записей A, отлично работают с голыми именами хостов.

dsRet = DnsQuery("_service._udp",DNS_TYPE_SRV,DNS_QUERY_STANDARD,NULL,&pQueryResultsSet,NULL);//==DNS_ERROR_RCODE_NAME_ERROR
dsRet = DnsQuery("_service._udp",DNS_TYPE_TEXT,DNS_QUERY_STANDARD,NULL,&pQueryResultsSet,NULL);//==DNS_ERROR_RCODE_NAME_ERROR
dsRet = DnsQuery("_service._udp.example.com",DNS_TYPE_SRV,DNS_QUERY_STANDARD,NULL,&pQueryResultsSet,NULL);//==ERROR_SUCCESS
dsRet = DnsQuery("_service._udp.example.com",DNS_TYPE_TEXT,DNS_QUERY_STANDARD,NULL,&pQueryResultsSet,NULL);//==ERROR_SUCCESS
dsRet = DnsQuery("collector",DNS_TYPE_A,DNS_QUERY_STANDARD,NULL,&pQueryResultsSet,NULL); //==ERROR_SUCCESS

Конечно, я могу запросить у системы имя основного домена и, возможно, даже все сконфигурированные поисковые домены, но я почти уверен, что мне не нужно этого делать. Я могу найти очень мало ссылок на API Windows DNS, поэтому мне интересно, есть ли лучший способ запрашивать записи TXT и SRV. У кого-нибудь есть опыт с этим под Windows?

Спасибо за любые предложения, Роберт


person Robert Jordan    schedule 24.02.2011    source источник


Ответы (1)


Причина, по которой он работает под nslookup, заключается в том, что Windows выполняет все поиски, используя суффиксы домена, с которыми он настроен. Чтобы увидеть это в действии, запустите nslookup и введите команду «set debug». Теперь выполните поиск, и вы увидите запросы и ответы, отправленные и полученные вашей машиной. Будет неотвеченный для «голого имени хоста» до того, как один из настроенных суффиксов домена будет добавлен и сопоставлен.

Надеюсь, что это поможет.

Джонатан

Вот бесплатная клиентская библиотека DNS, которую вы можете использовать для запроса DNS для различных типов запросов: http://www.simpledns.com/dns-client-lib.aspx также http://arsofttoolsnet.codeplex.com

person Jonathan Stanton    schedule 22.06.2011