在go语言中将IPv6的地址转换为整数或十进制数字代码示例
在go项目中怎么把字符串格式的IPv6地址转换为整数?
注意:
十进制数字格式的IP地址更容易搜索、过滤或比较。
例如,在一个给定的范围内搜索IP地址。
解决方法:
使用math/big.Int.SetBytes()将IPv6地址转换为有符号的多精度整数。
示例代码:
package main
import (
"fmt"
"math/big"
"net"
)
func IP6toInt(IPv6Address net.IP) *big.Int {
IPv6Int := big.NewInt(0)
// from http://golang.org/pkg/net/#pkg-constants
// IPv6len = 16
IPv6Int.SetBytes(IPv6Address.To16())
return IPv6Int
}
func main() {
ipv6Decimal := IP6toInt(net.ParseIP("FE80::0202:B3FF:FE1E:8329"))
fmt.Println(ipv6Decimal)
}
输出 :
338288524927261089654163772891438416681
相关文章