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中文網其他相關文章!