如何在GO(golang)中找到本地主机的FQDN?

时间:2015-10-03 06:19:36

标签: go fqdn

如何在GO(golang)中找到本地主机的FQDN?

BTW:net.LookupAddr()不适用于Windows。所以这不是一个选择。

3 个答案:

答案 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域),则有四种方法:

  1. 解析此命令的结果:wmic computersystem get domain
  2. 解析此命令的结果:systeminfo | findstr /B /C:"Domain"
  3. 假定环境变量USERDNSDOMAIN的存在并评估其值(请注意:此变量的值是在存储用户的域中引用的)
  4. 检查分配给工作站的IP之一是否可以通过DNS解析(关于这一点,您可以查看以下内容:https://github.com/Showmax/go-fqdn

答案 2 :(得分:0)

您可以使用net lib执行一些体操,如所示here