是否有res_ninit
的API替代品?
此通话存在问题,因为res->_u.ext.nscount6
和res->nscount
不能反映正确的数字。向/etc/resolv.conf
添加IPv6地址仍然会导致nscount
增加,而您原本希望nscount6
增加。
对于nscount
中的IPv6地址,较早的glibc版本似乎同时增加了nscount6
和/etc/resolv.conf
。
我当前正在直接解析resolv.conf
,因为我无法依赖res_ninit
调用。但这对于手动DNS很好。
当涉及到DHCP DNS时,我需要一个API给我结果。 (我能想到的)没有其他方法可以确定通过DHCP的DNS IP地址。
尝试在董事会中的其他地方发布信息,但到目前为止没有帮助。例如
答案 0 :(得分:1)
res_ninit
和res_init
仅从/etc/resolv.conf
中读取名称服务器信息。您始终可以通过自己解析/etc/resolv.conf
并检查nameserver
行来获得相同的数据名称服务器。如果没有nameserver
行,将使用默认的127.0.0.1
。
我认为没有必要为此提供API,因为文件格式非常简单,使用API可能比读取文件困难得多。
> 如果在计算机上没有本地缓存解析器,则通过重写/etc/resolv.conf
来实现通过DHCP的名称服务器分配。用于此目的的确切机制是特定于分发的,例如Debian使用resolvconf
(如果已安装)。
如果系统上正在运行本地缓存解析器(例如dnsmasq或Unbound),则可以在该缓存解析器中直接配置基于DHCP的名称服务器。在这种情况下,/etc/resolv.conf
将一直指向同一名称服务器,通常是通过列出nameserver 127.0.0.1
或根本不列出名称服务器信息(这是默认设置)来实现。