gpt4 book ai didi

c++ - 在 C 中查询 A 记录

转载 作者:行者123 更新时间:2023-11-28 08:23:24 24 4
gpt4 key购买 nike

我正在编写一些代码,使用 libresolv 检查 DNS 记录。
我首先使用 res_query 进行查询并成功,但如果我正在检查“A”记录,dn_expand 将不会给我返回 IP 地址(我认为我不应该真的期望它)。但是,我一直没能找到一个函数来解码来自 rr 的 IP 地址
如何获取IP?
如果需要,我可以发布一些代码。

最佳答案

这样做的方法是从 rr 中获取 rdata(使用 res_rr_rdata(rr) ),并通过 inet_ntop 运行它。

对于 A 记录,这是我的结尾:

if (ns_parserr(&msg, ns_s_an, rrnum, &rr)) {
printf("ns_parserr: %s\n", strerror(errno));
}
if(ns_rr_type(rr) == ns_t_cname){
printf("Found cname\n");
}
inet_ntop(AF_INET, ns_rr_rdata(rr), decodedBuffer, NS_MAXDNAME);

decodedBuffer 以 ip 结束。显然对于AAAA,使用AF_INET6

关于c++ - 在 C 中查询 A 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4979535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com