在網路程式設計中,有時候需要查詢網域的IP位址。 Golang標準函式庫提供了一個net包,其中的ResolveIPAddr函式可以用來查詢指定網域的IP位址。以下就詳細介紹如何使用Golang查詢網域IP的方法。
首先,需要導入net包,這個包提供了一系列的網路操作函數和型別。有了這個包,我們就可以使用其中的ResolveIPAddr函數查詢網域的IP位址了。
import "net"
查詢網域IP位址的函數是ResolveIPAddr,它的原型是:
func ResolveIPAddr(network, address string) (*IPAddr, error)
其中,network參數不能為空,它指定查詢的網路類型,可以是"ip4"或"ip6",對應IPv4位址和IPv6位址。 address參數為需要查詢的網域名稱。
程式碼如下:
ip, err := net.ResolveIPAddr("ip4", "www.google.com") if err != nil { fmt.Println("Resolve error:", err) return } fmt.Println(ip.String())
這裡查詢的是www.google.com網域的IPv4位址。上述程式碼先呼叫ResolveIPAddr函數查詢該網域的IP位址,並把結果保存在ip變數中。如果出現錯誤,則需要進行錯誤處理。最後,用ip.String()函數把查詢結果以字串形式印出來。
如果需要查詢IPv6位址,則可以修改查詢函數的第一個參數為"ip6",同時修改網域為IPv6位址的形式。
例如,查詢ipv6.google.com的IPv6位址代碼如下:
ip, err := net.ResolveIPAddr("ip6", "::ffff:172.217.26.238") if err != nil { fmt.Println("Resolve error:", err) return } fmt.Println(ip.String())
這裡查詢時把IPv4位址172.217.26.238轉換為IPv6位址"::ffff:172.217.26.238"並作為參數傳入第二個參數。
net套件提供了許多網路程式所需的函數和類型,而ResolveIPAddr函數則可以用來查詢網域的IP位址。使用時,需要注意網路類型和查詢網域的正確格式。
以上是golang查詢網域ip的詳細內容。更多資訊請關注PHP中文網其他相關文章!