string - 如何在Go中将文本位字符串转换为IP地址

标签 string go data-conversion

我可以使用Sprintf将net.IP地址转换为位串:

fmt.Sprintf("%08b%08b%08b%08b",net.IP[0],net.IP[1],net.IP[2],net.IP[3])
如何从字符串"11000000101010000000000000000000"转换回"192.168.0.0"
谢谢

最佳答案


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

关于string - 如何在Go中将文本位字符串转换为IP地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64084115/

相关文章:

go - 如何为golang项目的RPM规范创建构建部分?

xml - 使用 golang 解析 tei XML

r - 转换为 xts 不起作用,因为数据类型为 'character' 且无法转换为 'numeric'

powershell - 为什么 Powershell 文件串联会将 UTF8 转换为 UTF16?

python - 正则表达式在字符串开头未匹配

.net - 字符串是值类型还是引用类型?

python - 在字符串的开头和结尾添加 """?

C++/Win32 弃用的字符串函数 : mbstowcs, wcstombs,安全还是不安全?

amazon-web-services - 使用 AWS EC2 Golang GO 端点在 Docker 部署上获取 JSON 时出现问题

python - 有一个函数在打印时转换成它的名字