在 Linux 上以编程方式设置 DNS 名称服务器

2024-06-18

我希望能够通过我的 C/C++ 程序为 Linux 上的 DNS 名称服务器添加 IP 地址。我在一个带有只读 /etc/resolv.conf 的嵌入式平台上。这意味着我不能简单地将“nameserver xxx.xxx.xxx.xxx”行添加到文件中而不需要一点技巧。有没有什么干净的方法可以从代码中做到这一点?

我可以尝试将 /etc/resolv.conf 符号链接到 tmpfs 中的文件,但这看起来很黑客,而且感觉像是我应该能够在不写入文件的情况下完成的事情。


看一下nsaddr_list in resolv.conf http://sourceware.org/git/?p=glibc.git;a=blob;f=resolv/resolv.h;hb=2d0671cbbdade9013d6fd5153d01bd5e1d3f60cb#l109来自你的 libc。

这个问题 https://stackoverflow.com/questions/388930/using-the-name-resolver-of-resolv-h-with-ipv6 says:

尽管没有记录,但设置所使用的解析器的常见方法是更新_res.nsaddr_list.

在 uClibc 0.9.31 中具体有一个评论第533行 http://git.uclibc.org/uClibc/tree/libc/inet/resolv.c?id=0.9.31#n533 in resolv.c描述这是如何工作的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Linux 上以编程方式设置 DNS 名称服务器 的相关文章

随机推荐