0

现在,我的应用程序在cURL下面的 Windows 上使用c-ares异步 DNS 解析器库,我有用户抱怨它的行为与其他 Windows 应用程序不同。一位特定用户说“其他应用程序正在使用 Microsoft DNS 客户端”并且没有遇到任何问题。

cURL 本身有一个异步 DNS 实现,它在线程中使用 getaddrinfo()。我的猜测是,这与使用“DNS 客户端”及其一系列功能(例如 DnsQuery?)的行为等效。

所以,亲爱的 Lazyweb,我问 getaddrinfo() 的行为与使用 Win32 API 中的实际 Dns* API 之间是否存在明显差异。

4

2 回答 2

1

查看来源,似乎 ares 实际上实现了用于查询主机名的 dns 协议(并且不直接调用 getaddrinfo) - 我希望它会错过诸如 WINS 查找之类的东西,天知道还有什么其他类型的东西 windows 可以做查找名称。

于 2009-09-02T18:39:05.157 回答
0

在 Windows 上进行 DNS 查询的最简单方法是使用 DNSQuery(以及派生函数,utf8、wbytes、ansi)。除非您需要异步解析,否则在这种情况下,我建议您继续使用 c-ares 或其他类似的 API。

我不确定 WINS 或其他 Windows 特定的分辨率(不是 DNS 规范的一部分)没有被 c-ares 覆盖。如果你能给我们一些例子会有所帮助,也许我们也可以在 c-ares 中实现它们。

于 2010-04-25T21:01:38.000 回答