在 Golang 中,可以通过 net.Resolver
类型并调用其 Config
方法来获取操作系统自身使用的 DNS 服务器地址。以下是示例代码:
package main
import (
"fmt"
"net"
)
func main() {
resolver := net.Resolver{}
conf, err := resolver.Config()
if err != nil {
fmt.Println("Error: ", err)
return
}
for _, nameserver := range conf.Servers {
fmt.Println(nameserver)
}
}
上述代码中,我们首先创建了一个 net.Resolver
对象,并调用其 Config()
方法获取系统的 DNS 配置信息,并将结果存储在变量 conf
中。然后我们遍历该配置信息中的所有 DNS 服务器地址,并输出它们。
需要注意的是,在某些操作系统上,可能存在多个 DNS 服务器地址。如果你想要获取所有 DNS 服务器地址,可以遍历 conf.PreferreDNS
和 conf.Nameservers
这两个切片属性中的所有 IP 地址。