IP 与整数互转
IPv4 地址与 32 位整数互相转换。
什么是IP 与整数互转?
IP与整数互转工具用于在IPv4地址的“点分十进制”表示法(如192.168.1.1)和它对应的32位无符号整数(如3232235777)之间相互转换。原理是IPv4地址本质上就是一个32位二进制数,点分十进制只是把这32位每8位(一个字节)转成0-255的十进制数、用点分隔,方便人类阅读;转成整数就是把四段数字按 a×256³+b×256²+c×256+d 的方式合并成一个数。
为什么使用IP 与整数互转?
这个转换在数据库存储、日志分析、网络编程中很常见:很多系统为了节省存储空间、方便范围比较和排序(比如判断某个IP是否落在某个CIDR段内),会把IP地址存成整数而不是字符串,查询IP归属地库、风控规则、防火墙策略时经常需要在两种表示之间切换;调试网络代码(如Socket编程里用ntohl/inet_aton等函数)时也常需要手动核对转换是否正确。
使用示例
IP转整数
192.168.1.1 → 192×256³ + 168×256² + 1×256 + 1 = 3232235777。
整数转IP
3232235777 → 除以256³取整得192,余数继续按256进制分解得168、1、1,还原为192.168.1.1。
边界值验证
0.0.0.0对应整数0,255.255.255.255对应整数4294967295(即2^32-1),这两个值常用来验证转换工具处理边界是否正确。
使用提示
如果是在数据库里设计字段存储IP,用无符号32位整数(如MySQL的INT UNSIGNED)比存字符串更省空间、范围查询(BETWEEN)效率更高,但要注意应用层做好有符号/无符号的转换,避免出现负数或溢出问题。
常见问题
IPv4 转整数的原理是什么?
整数范围是多少?
数据会上传吗?
支持IPv6吗?
转换结果为什么还有十六进制表示?
这个整数是有符号还是无符号?
能批量转换一批IP吗?
和CIDR计算有什么关系?
相关工具
← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。