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