首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C中查询A记录

在C中查询A记录
EN

Stack Overflow用户
提问于 2011-02-13 01:42:02
回答 1查看 430关注 0票数 0

我正在编写一些使用libresolv检查DNS记录的代码。

我首先用res_query执行查询,查询成功了,但是如果我检查的是'A‘记录,dn_expand不会给我IP地址(我不认为我真的应该期望它)。但是,我还没有找到可以从rr中解码IP地址的函数。

如何获取IP?

我可以发布一些代码,如果需要的话。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-13 09:40:16

为此,方法是从rr获取rdata (使用res_rr_rdata(rr) ),并通过inet_ntop运行它。

对于A级的记录,我是这样结束的:

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4979535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档