我想以编程方式更新名称服务器。
在这个问题中,提到programmatically-set-dns-nameserver-on-linux是为了操纵_res.nsaddr_list
,所以我做到了。
void setNameServer(const std::string& rstr_addr)
{
struct sockaddr_in x_addr;
inet_pton(AF_INET,rstr_addr.c_str(),&x_addr.sin_addr);
res_init();
_res.nsaddr_list[0] = x_addr;
}
这不起作用。 getaddrinfo
现在返回错误:“名称或服务未知”
所以基本上有两个问题:
以编程方式设置名称服务器ip的正确方法是什么
如何以适当的方式对其进行永久设置(我自己将ATM写入/etc/resolv.conf
)