我如何获得类似功能的host
使用AC API(或任何其他语言为此事)命令? 我需要比由下式给出只是一个IP地址的信息gethostbyname()
; 具体地,SMTP相关的数据。
Answer 1:
如果阻塞(同步)查询是好的,只是使用res_query()
,并与-lresolv链接程序。
len = res_query(host, C_IN, T_MX, &answer, sizeof(answer));
Answer 2:
我建议FireDNS 。 它是各种的DNS查询的速度非常快的C库。
Answer 3:
我知道这个问题是旧的,但我一直寻找一个dns库,这里所有的答案只是存根我。 我认为像ADNS / udns库没有写人类。 并在相当长的时间FireDNS没有工作的下载链接。
我发现poslib与非常简单的界面最好的DNS库。
Answer 4:
我喜欢ADNS ,因为它允许异步请求
Answer 5:
我想告诉你,除非你正在写一个邮件中继你几乎肯定不应该找MX记录 - 你应该传递邮件到用户配置的邮件中继来代替。
Answer 6:
您也可以尝试C-顷库https://c-ares.haxx.se/ ,它允许异步发送DNS查询。 它还配备了adig - 它自己的版本掏实用查询DNS。 你可以检查一下,看看如何解析DNS回复: adig.c源
Answer 7:
我不认为在这个C标准库中的函数,但许多脚本语言确实有这个功能“内置”。 例如,Perl有中Net::DNS
包:
use Net::DNS;
my @mx = mx("example.com");
foreach $host (@mx) {
print $host;
}
如果你需要做这在C,快速谷歌显示了一些C库在那里,你可以使用:
- ADNS
- udns
- dns.c
- FireDNS (如由KO-DOS提到的)
文章来源: How might I perform DNS lookups using C/C++ on Linux?