这道题主要考量了两个知识点。
1)ip地址每个点分十进制数的值为0-255,转化为二进制就是 0000 0000 ~ 1111 1111。正好可以存储在一个八位的空间中,4个数正好是32位,和int32的长度是一样的。
2)int32的第一位为正负位,所以取值范围是-2147483648 ~ 2147483647,不满足我们的需求,所以我们需要使用uint32来进行存储。
func Ip2Num(ip string) (uint32, error) {
var result uint32
var tmp int
var err