在 Go 中如何找到本地主机的 FQDN?
顺便说一句:net.LookupAddr() 在 Windows 上不起作用。所以这不是一个选择。
默认情况下没有捷径。
os.Hostname()默认不提供完全限定域名。
cmd := exec.Command("/bin/hostname", "-f")
var out bytes.Buffer
cmd.Stdout = &out
err := cmd.Run()
if err != nil {
log.Errorf(err)
}
fqdn := out.String()
fqdn = fqdn[:len(fqdn)-1] // removing EOL
根据文档,函数os.Hostname()
返回内核报告的系统主机名。因此,如果您的计算机名为computer1
,则os.Hostname()
返回computer1
. 如果您的计算机被命名computer1.my.office
,则os.Hostname()
返回computer1.my.office
。在 Windows 上,也是一样的。如果您想要域名(称为 Active Directory 域),您有四种方法:
wmic computersystem get domain
systeminfo | findstr /B /C:"Domain"
USERDNSDOMAIN
并评估他的值(注意:这个变量的值是在存储用户的域中引用的)您可以使用此处演示的 net lib 执行一些体操。