2 回答
TA贡献2065条经验 获得超14个赞
func binaryStringToIPv4(bs string) (uint8, uint8, uint8, uint8) {
var ip uint32
for i, c := range bs {
// 31 = len(bs)-1
ip |= uint32(byte(c)-'0') << (31 - i)
}
return uint8(ip >> 24), uint8(ip >> 16), uint8(ip >> 8), uint8(ip)
}
TA贡献1815条经验 获得超6个赞
首先将位串转换回整数,然后通过适当的移位取出 IP 地址的部分。
s := "11000000101010000000000000000000"
output, _ := strconv.ParseInt(s, 2, 64)
ipb := []byte{
byte(output >> 24),
byte(output >> 16),
byte(output >> 8),
byte(output),
}
ip := fmt.Sprintf("%d.%d.%d.%d", ipb[0], ipb[1], ipb[2], ipb[3])
fmt.Println(ip)
或者
ip := net.IPv4(ipb[0], ipb[1], ipb[2], ipb[3])
fmt.Println(ip.String())
- 2 回答
- 0 关注
- 299 浏览
添加回答
举报
