问题标签 [libresolv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6830 浏览

c - gcc/cygwin如何获取DNS服务器?

我有一些我正在 cygwin 下编写的代码(使用 GCC)成功使用 gethostbyname(); 但是,当我尝试直接使用解析器来检索 DNS 服务器的 IP 地址时,它会失败(nsaddr_list[] 中的所有条目都为空,nscount 为 -1)。如果 gethostbyname() 工作正常,那么显然它能够连接到 DNS 服务器。
这段代码...

适用于 unix/linux,但在 cygwin 上返回 nscount=-1。使用 cygwin/gcc 时获取 DNS 服务器有什么技巧吗?

0 投票
1 回答
1870 浏览

c - c查询txt记录

每个人,我都编写了程序来读取dns txt记录,但是它有一些问题,谁能告诉我为什么?以下是我的源代码

输出:Fv=spf1 redirect=_spf.google.com

但是原始的txt记录应该是v=spf1 redirect=_spf.google.com

我的问题是u_char const *rdata = (u_char*)(ns_rr_rdata(query_parse_rr) )

如果我将其更改为u_char const *rdata = (u_char*)(ns_rr_rdata(query_parse_rr) +1)

输出将变为:v=spf1 redirect=_spf.google.com

另外,我参考了如何查询MX记录,我发现有+2,有什么可以告诉我为什么?

0 投票
2 回答
5434 浏览

c - 如何查询服务器并获取 MX、A、NS 记录

我正在尝试获取 A、MX 和 NS A 服务器记录,如下所示:

On request 收到很多相同的,即相同的 A 记录。NS 记录也是如此。我究竟做错了什么?例子 :

请帮忙。

0 投票
1 回答
409 浏览

ios - 这是否允许在 iOS 上将 dlopen() 和 dlsym() 用于系统库(例如:libresolv)?

这是否允许在 iOS 上将 dlopen() 和 dlsym() 用于系统库(例如:libresolv)?

感谢您提前回答!

0 投票
1 回答
1664 浏览

c - 提取 DNS A 记录的 TTL 值

我正在做一些 dns 的事情,我需要对 SRV 进行 A 记录查找并从中提取 ttl 和 ip 地址:

我可以使用以下代码提取 ip,但是如何提取 TTL?

输出:

0 投票
0 回答
107 浏览

c - 解析dns A记录时如何获取uint32_t格式的IP

我正在尝试解析记录:

目前inet_ntop给了我 1.1.1.1 格式的 ip 但是我想要它作为 32 位整数,有什么想法吗?

0 投票
0 回答
259 浏览

dns - 使用 google nameserver 8.8.8.8 时 libresolv 不解析名称

我正在使用 libresolv 库创建一个应用程序,该应用程序在命令行参数中采用 DNS 服务器名称并将主机名查询到此特定 DNS 服务器。

如果使用,这适用于本地 DNS 服务器。但是当我尝试通过 8.8.8.8 (google nameserver) res_query 总是返回-1。我在网上搜索了类似的东西,发现 res_init 加载 /etc/resolv.conf。我不想要。我想覆盖 resolv.conf 并告诉解析器使用用户输入的名称服务器来使用。(谷歌服务器失败)

0 投票
1 回答
424 浏览

c++ - 为支持 CNAME 记录的 A 记录配置 TTL

我正在使用 libresolv 获取域的权威名称服务器列表,然后直接查询其中一个名称服务器以解析主机。

这样,我可以获得为 A 记录配置的 TTL,然后我选择在我的代码中以该 TTL 刷新我的 DNS 记录。

但是,我遇到了一个麻烦,因为我不确定如何处理引用 CNAMES 的主机。例如,输出www.microsoft.com如下所示:

我应该使用 CNAME TTL 刷新我的主机吗?如果是这样,我如何获得为 CNAME 配置的 TTL?

或者,我是否应该使用链接到 CNAME(即e10088.dspb.akamaiedge.net)的 A 记录来刷新我的使用?如果是这样,我如何获取该主机的配置 TTL?

您的专家可以提供的任何信息将不胜感激。

0 投票
1 回答
915 浏览

c++ - 如何使 res_query 与 dns 缓存一起使用?

我正在使用 libresolv 执行对 dns 服务器的请求。

我也使用本地 dns 缓存。(dnsmasq/未绑定)

dig例如,当我使用时dig google.com,请求被缓存,下一个请求使用缓存值。

我们可以在 dnsmasq 日志中看到这一点:

然后我使用res_query ,我得到了这个:

所以看起来来自 dns 服务器的响应没有命中 dns 缓存并且没有被缓存。

有没有办法缓存来自的请求res_query

这就是我向 DNS 解析器发出请求的方式:

我想 res_nquery 不会检查本地 DNS 缓存,而 dig 会。

0 投票
1 回答
485 浏览

linux - 在 Linux 上以编程方式检索 IPv6 DNS 服务器列表

我正在尝试以编程方式检索 IPv6 DNS 服务器列表。目前我正在使用 libresolv 和下一个代码:

根据 resolv.h,res->_u._ext.nsaddrs 字段应该包含一个带有所需地址的“struct sockaddr_in6 *”数组,但它包含一个 NULL 数组。

IPv4 DNS 服务器列表可通过 res->nsaddr_list 字段访问,但 IPv6 列表始终为空。我已经在 Ubuntu 和 CentOS 上检查过了。IPv6 配置正确。