2009-09-02 85 views
0

現在,我的應用程序在Windows上使用c-ares異步DNS解析器庫,其編號爲cURL,我有用戶抱怨說它的行爲與其他Windows應用程序的行爲不同。一位特定用戶表示「其他應用程序正在使用Microsoft DNS客戶端」,並且沒有任何問題。「Microsoft DNS Client」與getaddrinfo?

cURL本身具有異步DNS實現,它在線程中使用getaddrinfo()。我的猜測是,這將是等效的行爲,使用「DNS客戶端」及其功能的主機(如DnsQuery?)

所以,親愛的Lazyweb,我問getaddrinfo()vs行爲之間是否有一個實際的差異。使用Win32 API中的實際Dns * API。

回答

1

查看源代碼似乎是實際上實現了查詢主機名稱的dns協議(並且不直接調用getaddrinfo) - 我期望錯過WINS查找之類的東西,並且上帝知道其他類型的東西窗口可以做查找名稱。

+0

瞭解。所以我的問題是,使用getaddrinfo是一個很好的支持方式嗎?或者大多數Windows應用程序使用Win32 API DNS API? – 2009-09-02 20:15:57

+0

是的,你不應該在喬平均應用程序中使用ares。 – Lothar 2015-11-27 16:13:29

0

在Windows上執行DNS查詢的最簡單方法是使用DNSQuery(以及衍生函數,utf8,wbytes,ansi)。除非你需要異步解析,在這種情況下,我會建議繼續使用c-ares或其他類似的API。

我不確定WINS或其他Windows特定的解決方案(不是DNS規範的一部分)沒有被c-ares覆蓋。如果你能給我們一些例子,也許我們可以用c-ares來實現它們,這會有所幫助。瞭解。

相關問題