Я пытаюсь запросить набор записей 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?
Спасибо за любые предложения,
Роберт