IP 地址本质上就是数字
IPv4 地址是一个 32 位整数,写成四段十进制。8.8.8.8 的十进制是 134744072,十六进制是 0x08080808。IPv6 地址是 128 位整数,写成八组十六进制数。
整数形式便于在数据库中存储 IP、比较范围和排序,部分系统和网址也直接接受十进制形式。
常见问题
为什么浏览器可以打开 http://134744072?
浏览器接受单个 32 位整数作为 IPv4 地址,所以 http://134744072 与 http://8.8.8.8 指向同一主机。
数据库中如何存储 IPv6?
使用原生 inet 类型(PostgreSQL)或 16 字节二进制列,128 位整数超出了大多数数值类型的范围。