2011-02-24 54 views
0

我試圖使用裸主機名(例如_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下有這方面的經驗?

感謝您的任何建議, 羅伯特

回答

1

,它的作品下NSLOOKUP的原因是Windows正在執行使用,它配置了域名後綴的所有搜索。要看到這個動作啓動nslookup,然後發出「設置調試」命令。現在執行您的搜索,您將看到您的機器發送和接收的請求和響應。在配置的一個域名後綴被附加和匹配之前,將會有一個「裸露主機名」的未解決問題。

希望這可以幫助。

喬納森

這裏是你可以用它來查詢不同類型的查詢的DNS免費DNS客戶端庫:http://www.simpledns.com/dns-client-lib.aspxhttp://arsofttoolsnet.codeplex.com