在 Linux 上以编程方式设置 DNS 名称服务器
我希望能够通过我的 C/C++ 程序为 Linux 上的 DNS 名称服务器添加 IP 地址。我在一个带有只读 /etc/resolv.conf 的嵌入式平台上。这意味着我不能简单地将“nameserver xxx.xxx.xxx.xxx”行添加到文件中而不需要一点技巧。有没有什么干净的方法可以从代码中做到这一点?
我可以尝试将 /etc/resolv.conf 符号链接到 tmpfs 中的文件,但这看起来很黑客,而且感觉像是我应该能够在不写入文件的情况下完成的事情。
I'd like to be able to add IP addresses for DNS nameservers on Linux from my C/C++ program. I'm on a somewhat embedded platform with a read-only /etc/resolv.conf. This means I can't simply add a "nameserver xxx.xxx.xxx.xxx" line to the file without a little trickery. Are there any clean ways to do this from code?
I could try symlinking /etc/resolv.conf to a file in tmpfs, but that seems hackish and it feels like something I should be able to do without writing to a file.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看看
resolv.conf
来自您的 libc。这个问题说:
在 uClibc 0.9.31 中,具体有一个 在
resolv.c
中的第 533 行 上添加注释,描述其工作原理。Have a look at
nsaddr_list
inresolv.conf
from your libc.This question says:
In uClibc 0.9.31 specifically there is a comment on line 533 in
resolv.c
describing how this works.