【发布时间】:2010-11-10 20:01:34
【问题描述】:
如何使用 c api(或任何其他语言)获得与 host 命令类似的功能?我需要更多信息,而不仅仅是gethostbyname() 提供的 IP 地址;特别是与 SMTP 相关的数据。
【问题讨论】:
-
当您提到 smtp-related 时,您是指域的 MX 记录吗?
如何使用 c api(或任何其他语言)获得与 host 命令类似的功能?我需要更多信息,而不仅仅是gethostbyname() 提供的 IP 地址;特别是与 SMTP 相关的数据。
【问题讨论】:
如果阻塞(同步)查询没问题,只需使用res_query(),并将您的程序与-lresolv 链接。
len = res_query(host, C_IN, T_MX, &answer, sizeof(answer));
【讨论】:
我建议FireDNS。这是一个非常快速的 C 库,适用于各种 dns 查询。
【讨论】:
我知道这个问题很老了,但我早就搜索了一个 dns 库,这里的所有答案都让我很困惑。我认为像 adns/udns 这样的库不是为人类编写的。而且FireDNS很长时间都没有下载链接。
我发现poslib 是最好的 dns 库,界面非常简单。
【讨论】:
我喜欢adns,因为它允许异步请求
【讨论】:
我还要补充一点,除非您正在编写邮件中继,否则您几乎肯定不应该查找 MX 记录 - 您应该将邮件传递给用户配置的邮件中继。
【讨论】:
您也可以尝试 c-ares 库 https://c-ares.haxx.se/,它允许发送异步 DNS 查询。它还带有 adig - 它自己的用于查询 DNS 的 dig 实用程序版本。您可以查看它以查看如何解析 DNS 回复:adig.c source
【讨论】: