以编程方式获取主机的DNS服务器

时间:2010-05-26 20:48:13

标签: c++ cross-platform dns

使用C ++,我想获得主机用于三种操作系统的DNS服务器:OS X,FreeBSD和Windows。我想确认以下方法确实是最佳实践,如果不是,那么这是一种更好的选择。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:8)

在许多unix系统(linux,bsd)上,您可以使用解析程序函数来获取DNS服务器列表:man 3 resolver

调用res_init()后,初始化了解析器结构。解析器结构存储了您需要的所有信息。 DNS服务器列表存储在结构条目nsaddr_list中。

解析器结构的确切规格很可能在resolv.h中找到。

使用解析程序功能是获取DNS服务器列表的首选方法。 res_init()很可能会使用/etc/resolv.conf中的信息填充解析器结构。

另见Use of resolv.h