IP和数字互转
IPv4地址与十进制/十六进制数字互转
转换示例参考
| IP 地址 | 十进制数字 | 十六进制 | 操作 |
|---|---|---|---|
| 0.0.0.0 | 0 | 0x00000000 | |
| 127.0.0.1 | 2130706433 | 0x7F000001 | |
| 192.168.0.1 | 3232235521 | 0xC0A80001 | |
| 255.255.255.255 | 4294967295 | 0xFFFFFFFF | |
| 10.0.0.1 | 167772161 | 0x0A000001 | |
| 172.16.0.1 | 2886729729 | 0xAC100001 |
为什么需要 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