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