2015-10-03 51 views
1

你如何找到GO(golang)中本地主機的FQDN?如何找到GO(golang)中本地主機的FQDN?

順便說一句:net.LookupAddr()在Windows上不起作用。所以這不是一個選項。

+0

沒有。這不會返回DNS後綴。 –

+0

如何從操作系統獲取信息?在這個意義上,Go沒有特定的東西。 'USERDNSDOMAIN'環境變量是否設置? – JimB

+0

這不起作用。它並不常見。 在哪裏檢索連接DNS後綴取決於操作系統。有API調用或/ etc文件。我發現Go並不提供跨操作系統的通用方法來獲取它,而且您必須自己爲每個操作系統編寫函數。 對於窗口我需要調用'IpAdapterAddresses'系統調用;在linux上,當我將應用程序移植到CentOS時,我將不得不弄清楚它。 –

回答

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 

0

您可以使用net LIB作爲證明here執行一些體操。