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 關注
- 293 瀏覽
添加回答
舉報
