我試圖使用裸主機名(例如_service._proto)查詢一組SRV記錄,但是除非我還包括域名,否則這將失敗。這很奇怪,因爲其他工具(如nslookup)可以正常工作,並且使用相同的API調用來查詢A記錄,可以使用裸主機名稱正常工作。如何從Windows查詢TXT和SRV記錄?
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下有這方面的經驗?
感謝您的任何建議, 羅伯特