ネイキッド ホスト名 (例: _service._proto) を使用して SRV レコードのセットをクエリしようとしていますが、ドメイン名も含めないと失敗します。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
もちろん、システムにクエリを実行してプライマリ ドメイン名と、場合によっては構成済みのすべての検索ドメインを取得することもできますが、そうする必要はないと確信しています。Windows DNS API への参照がほとんど見つからないため、TXT および SRV レコードをクエリするためのより良い方法があるかどうか疑問に思っています。Windowsでこれを経験した人はいますか?
提案をありがとう、ロバート