前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go语言IP转换uint32,uint32转换IP「建议收藏」

go语言IP转换uint32,uint32转换IP「建议收藏」

作者头像
全栈程序员站长
发布2022-10-04 17:04:46
1.3K0
发布2022-10-04 17:04:46
举报

大家好,又见面了,我是你们的朋友全栈君。

uint32类型转换为IP

代码语言:javascript
复制
func UInt32ToIP(intIP uint32) net.IP {
    var bytes [4]byte
    bytes[0] = byte(intIP & 0xFF)
    bytes[1] = byte((intIP >> 8) & 0xFF)
    bytes[2] = byte((intIP >> 16) & 0xFF)
    bytes[3] = byte((intIP >> 24) & 0xFF)

    return net.IPv4(bytes[3], bytes[2], bytes[1], bytes[0])
}

IP转换为uint32类型

代码语言:javascript
复制
func IPToUInt32(ipnr net.IP) uint32 {
    bits := strings.Split(ipnr.String(), ".")

    b0, _ := strconv.Atoi(bits[0])
    b1, _ := strconv.Atoi(bits[1])
    b2, _ := strconv.Atoi(bits[2])
    b3, _ := strconv.Atoi(bits[3])

    var sum uint32

    sum += uint32(b0) << 24
    sum += uint32(b1) << 16
    sum += uint32(b2) << 8
    sum += uint32(b3)

    return sum
}

示例代码:

代码语言:javascript
复制
func main() {

	// IP地址转换为uint32
	IP1 := net.ParseIP("192.168.8.44")
	IPUint32 := IPToUInt32(IP1)
	fmt.Println(IPUint32)

	// uint32转换为IP地址
	IP2 := UInt32ToIP(IPUint32)
	fmt.Println(IP2.String())
}

执行结果如下

3232237612 192.168.8.44

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/196343.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月7日 上,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NAT 网关
NAT 网关(NAT Gateway)提供 IP 地址转换服务,为腾讯云内资源提供高性能的 Internet 访问服务。通过 NAT 网关,在腾讯云上的资源可以更安全的访问 Internet,保护私有网络信息不直接暴露公网;您也可以通过 NAT 网关实现海量的公网访问,最大支持1000万以上的并发连接数;NAT 网关还支持 IP 级流量管控,可实时查看流量数据,帮助您快速定位异常流量,排查网络故障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档