9
使用C++,我想获得主机在三种操作系统中使用的DNS服务器:OS X,FreeBSD和Windows。我希望确认下面的方法确实是最好的做法,如果不是的话,这是一个更好的选择。以编程方式获取主机的DNS服务器
- OS X:already answered;提前
/etc/resolv.conf
感谢您的帮助:在developer.apple.com
GetNetworkParams
使用C++,我想获得主机在三种操作系统中使用的DNS服务器:OS X,FreeBSD和Windows。我希望确认下面的方法确实是最好的做法,如果不是的话,这是一个更好的选择。以编程方式获取主机的DNS服务器
/etc/resolv.conf
感谢您的帮助:在developer.apple.com
GetNetworkParams
在许多unix系统(linux,bsd)上,您可以使用解析器函数来获取DNS服务器列表:man 3 resolver。
在调用res_init()
之后,解析器结构被初始化。解析器结构存储您需要的所有信息。 DNS服务器列表存储在结构条目nsaddr_list
中。
解析器结构的确切规格最有可能在resolv.h
中找到。
使用解析器功能是获取DNS服务器列表的首选方法。 res_init()
很可能会填充解析器结构,其中包含/etc/resolv.conf
中的信息。
是的,这似乎的首选方式获得,虽然* nix中API的DNS服务器。谢谢! – 2010-12-03 04:05:06
使用res_ninit和res_nclose,不依赖于全局状态变量。 – tangxinfa 2015-08-14 10:00:01