How do you find the FQDN of the local host in Go?
BTW: net.LookupAddr() doesn't work on Windows. So that's not an option.
How do you find the FQDN of the local host in Go?
BTW: net.LookupAddr() doesn't work on Windows. So that's not an option.
By default there is no short way.
os.Hostname() doesn't provide the Fully Qualified Domain Name by default.
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
According to the documentation, function os.Hostname()
returns the system host name reported by kernel. So, if your computer is named computer1
, os.Hostname()
returns computer1
. If your computer is named computer1.my.office
, os.Hostname()
returns computer1.my.office
. On Windows, is the same. If you want the domain name (as referred to the Active Directory domain) you have four ways:
wmic computersystem get domain
systeminfo | findstr /B /C:"Domain"
USERDNSDOMAIN
and evaluate his value (note that: the value of this variable is referred at the domain which user is stored)You can perform some gymnastics using the net lib as demonstrated here.