首頁 >後端開發 >Golang >GoLang:net.LookupHost 回傳重複的 ip

GoLang:net.LookupHost 回傳重複的 ip

WBOY
WBOY轉載
2024-02-09 13:00:19470瀏覽

GoLang:net.LookupHost 返回重复的 ip

php小編西瓜今天要為大家介紹的是Go語言中的一個函式net.LookupHost,該函式在進行主機名稱解析時,可能會傳回重複的IP位址。在實際應用中,這可能會導致一些問題,例如連接到同一台伺服器多次。因此,我們需要了解這個問題的原因和解決辦法,以確保程式碼的正確性和穩定性。在接下來的文章中,我們將詳細解析這個問題,並提供相應的解決方案。敬請關注!

問題內容

我正在嘗試執行 net.lookuphost 來取得執行我的程式碼的電腦的 ip 位址。它在大多數機器上工作,但在少數機器上,它會傳回一個包含兩個條目的切片:正確的 ip 和具有相同 ip 的重複條目。

我嘗試在主機上執行 nslookup,但它只會傳回一個條目。

將程式碼加入問題 -

hostname, _ := os.Hostname()

    ips, err := net.LookupHost(hostname)

    if err != nil {
            fmt.Printf("%d\n", err.Error())
    }

    fmt.Printf("Hello, 世界 %#v \n", ips)

    ips2, err := net.LookupIP(hostname)

    if err != nil {
            fmt.Printf("%d\n", err.Error())
    }

    fmt.Printf("Hello, 世界 %#v \n", ips2)

我期望 net.lookuphost 在回應中只給出一個條目,但它在回應中給出了兩個相同的條目。

解決方法

看起來像是 DNS 解析問題。 如果它在其他伺服器上工作,請嘗試檢查檔案 /etc/hosts

系統先查詢 /etc/hosts 文件,然後查詢 DNS 伺服器。

來源:https://debian-handbook.info /browse/stable/sect.hostname-name-service.html

以上是GoLang:net.LookupHost 回傳重複的 ip的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除