如何使用c api(或其他任何语言)获得与host
命令类似的功能?我需要的信息不仅仅是gethostbyname()
给出的IP地址;特别是与SMTP相关的数据。
答案 0 :(得分:18)
如果阻止(同步)查询没问题,只需使用res_query()
,并将程序与-lresolv链接。
len = res_query(host, C_IN, T_MX, &answer, sizeof(answer));
答案 1 :(得分:1)
我建议FireDNS。它是一个非常快速的C库,可用于各种dns查询。
答案 2 :(得分:1)
我喜欢adns,因为它允许异步请求
答案 3 :(得分:1)
我知道这个问题已经过时了,但是我一直在寻找一个dns库,而这里的所有答案都只是困扰我。我认为像adns / udns这样的图书馆不是为人而写的。而FireDNS很长一段时间没有工作下载链接。
我发现poslib是最好的dns库,界面非常简单。
答案 4 :(得分:0)
我想补充一点,除非您正在编写邮件中继,否则您几乎肯定不应该查找MX记录 - 您应该将邮件传递给用户配置的邮件中继。
答案 5 :(得分:0)
您还可以尝试使用c-ares库https://c-ares.haxx.se/,该库允许发送异步DNS查询。它还带有adig-它自己的用于查询DNS的dig实用程序版本。您可以检查一下以了解如何解析DNS回复:adig.c source
答案 6 :(得分:-1)