2009-09-02 43 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来实现它们,这会有所帮助。了解。

相关问题