在Golang中,我們經常需要將整數類型的IP位址轉換為字串類型的IP位址,或相反地,將字串類型的IP位址轉換為整數類型的IP位址。
Golang提供了方便的函式庫函數來實現這種轉換。使用下列函數和方法可以完成從整數類型到字串類型和從字串類型到整數類型的IP轉換。
將整數型別的IP位址轉換為字串型別的IP位址:
func IntToIP(ip uint32) net.IP { return net.IPv4(byte(ip>>24), byte(ip>>16), byte(ip>>8), byte(ip)) }
此函數將無符號整數IP位址(uint32)轉換為IPv4位址,傳回一個net.IP型別的結構體。我們可以透過使用String()方法來轉換為字串類型的IP位址。
使用範例:
ip := uint32(3232235876) // 对应IP地址为192.168.1.100 ipAddr := IntToIP(ip) fmt.Println(ipAddr.String()) // output: "192.168.1.100"
將字串型別的IP位址轉換為整數型別的IP位址:
func IPToInt(ip net.IP) uint32 { return binary.BigEndian.Uint32(ip.To4()) }
此函數接受一個IP位址(net.IP型別)作為參數,並傳回對應的無符號整數類型(uint32)。在函數內部,我們使用binary.BigEndian.Uint32()函數將IPv4位址轉換為32位元無符號整數。
使用範例:
ipStr := "192.168.1.100" ipAddr := net.ParseIP(ipStr) ipInt := IPToInt(ipAddr) fmt.Println(ipInt) // output: 3232235876
總結:
在這篇文章中,我們討論了在Golang中將整數類型的IP位址轉換為字串類型的IP位址和將字串類型的IP位址轉換為整數類型的IP位址的方法。我們使用了Golang提供的net.IP類型和binary.BigEndian.Uint32()函數來實現這種轉換。這是在網頁程式設計和系統管理中非常常見的操作,這些函數和方法可以使Golang開發變得更加方便和有效率。
以上是golang int轉IP的詳細內容。更多資訊請關注PHP中文網其他相關文章!