Как запросить записи TXT и SRV из Windows? - PullRequest
1 голос
/ 25 февраля 2011

Я пытаюсь запросить набор записей 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?

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

1 Ответ

2 голосов
/ 22 июня 2011

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

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

Джонатан

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

...