亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在go中將文本位串轉換為網絡IP地址

如何在go中將文本位串轉換為網絡IP地址

Go
元芳怎么了 2022-07-04 16:13:59
我可以使用以下方法將 net.IP 地址轉換為位串Sprintf:fmt.Sprintf("%08b%08b%08b%08b",net.IP[0],net.IP[1],net.IP[2],net.IP[3])如何從字符串轉換"11000000101010000000000000000000"回"192.168.0.0"?謝謝
查看完整描述

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)

}


查看完整回答
反對 回復 2022-07-04
?
紅糖糍粑

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())


查看完整回答
反對 回復 2022-07-04
  • 2 回答
  • 0 關注
  • 293 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號