IP和字符串的相互转换
本文最后更新于:2023年5月15日 下午
来源
本文出自:MySQL如何有效的存储IP地址及字符串IP和数值之间如何转换
写法
仔细想想,IPv4的每一部分其实都是0~255的取值,也就是8 bit的大小,如果转换成整型那么就只需要32 bit即4个字节的大小。
而转换的方法也是顺着这个思路,先把字符串以.为分隔符分成四部分,再把这四部分进行位操作后加起来,就能得到整型的IPv4地址了。
1 | |
那么转换回去的思路也大差不差,先用位操作得到四个部分,再进行转型和字符串合并。
1 | |
比较尴尬的是java没有无符号整型,只好直接使用长整型来存储了(不觉得另一种意义上的十分浪费吗.jpg)。
写在最后
原文中提到MySQL中是自带相应函数来把字符串格式的IP转换成整数的INET_ATON和IP转换成字符串的INET_NTOA的,还有适应IPv6的INET6_ATON和INET6_NTOA,之后可以学习一下。

希望本文章能够帮到您~
IP和字符串的相互转换
https://map1e-g.github.io/2023/05/15/ip2str/