为什么要转换 IP 地址?
计算机把 IPv4 地址存储为一个 32 位的数字;我们熟悉的点分格式,如 192.168.0.1,只是书写其四个字节的一种便于人类阅读的方式。不同的工具和数据库使用不同的表示形式:
- 整数(十进制):在数据库和地理位置文件中存储紧凑,范围查询速度快。
192.168.0.1就是3232235521。 - 十六进制:用于抓包、内核表和某些日志格式:
0xC0A80001。 - 二进制:是理解子网掩码和 CIDR 的关键。掩码中的每个 1 位都标记网络部分。
- IPv4 映射的 IPv6:双栈软件表示 IPv4 客户端的方式,例如
::ffff:192.168.0.1。
转换是如何进行的
把每个八位字节乘以它的位权再相加:a × 256³ + b × 256² + c × 256 + d。对于 8.8.8.8,即 8 × 16,777,216 + 8 × 65,536 + 8 × 256 + 8 = 134,744,072。要换回来,就反复除以 256 并保留余数。
IPv6 的压缩与展开
IPv6 地址可以写成缩短形式:每组中的前导零会被省略,一段全为零的连续组会被替换为 ::。转换器会同时显示压缩形式(2001:db8::1)和完整的展开形式(2001:0db8:0000:0000:0000:0000:0000:0001)。进一步了解 IPv6。
安全提示:浏览器和许多库都接受不常见的 IP 格式,例如
http://2130706433/(即 127.0.0.1)或八进制的八位字节。攻击者利用这些格式绕过简单的过滤器,所以在验证地址之前,务必先将其规范化。常见问题
可以输入二进制吗?
可以。IPv4 输入 32 位,IPv6 输入 128 位,带不带点都可以。
IPv4 地址对应的最大数字是多少?
4294967295,即 255.255.255.255(2³² − 1)。
更新于