如何在GO(golang)中找到本地主机的FQDN?
BTW:net.LookupAddr()不适用于Windows。所以这不是一个选择。
答案 0 :(得分:3)
默认情况下没有简短的方法。
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
答案 1 :(得分:1)
根据文档,函数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
的存在并评估其值(请注意:此变量的值是在存储用户的域中引用的)答案 2 :(得分:0)
您可以使用net lib执行一些体操,如所示here。