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

时间:2011-02-17 20:21:16

标签: c++ linux dns nameservers

我希望能够从我的C / C ++程序中为Linux名称服务器添加IP地址。我在一个有点嵌入式平台上,只有一个只读的/etc/resolv.conf。这意味着我不能简单地在文件中添加“nameserver xxx.xxx.xxx.xxx”行而不需要一点点诡计。有什么干净的方法可以从代码中执行此操作吗?

我可以尝试将/etc/resolv.conf符号链接到tmpfs中的文件,但这似乎是hackish,感觉就像我应该能够做到的而无需写入文件。

1 个答案:

答案 0 :(得分:1)

从您的libc中查看resolv.conf中的nsaddr_list

This question说:

  

虽然没有记录,但设置解析程序的常用方法是更新_res.nsaddr_list

在uClibc 0.9.31中,resolv.c中有一个comment on line 533描述了它是如何工作的。