IP和数字互转

IPv4地址与十进制/十六进制数字互转

转换示例参考

IP 地址十进制数字十六进制操作
0.0.0.000x00000000
127.0.0.121307064330x7F000001
192.168.0.132322355210xC0A80001
255.255.255.25542949672950xFFFFFFFF
10.0.0.11677721610x0A000001
172.16.0.128867297290xAC100001

为什么需要 IP 和数字互转?

IP 地址的数字化处理在计算机科学中具有极高的实用价值:

  • 数据库存储优化:在数据库中存储 IP 时,将 192.168.1.1 存为字符串(15 字节)远比存为 4 字节的无符号整数(unsigned int)更占空间。使用数字存储可显著提升索引速度。
  • CIDR 与掩码计算:数字化后的 IP 可以直接进行按位运算(AND/OR/XOR),方便快速判断两个 IP 是否处于同一子网。
  • 网络安全分析:在处理大规模日志时,数字格式的 IP 更有利于进行范围查询(如判断 IP 是否在黑名单起始与结束段之间)。
  • 排序与检索:数字格式天然支持大小比较,可以瞬间完成 IP 地址的升序或降序排列。

转换原理:

基于公式计算:(A × 256³) + (B × 256²) + (C × 256¹) + D

或通过位运算:(A << 24) | (B << 16) | (C << 8) | D