您建议存储客户端 IP 地址的数据库列的最大大小是多少?我现在将它设置为 16,但是我可以获得比 IPv6 等更长的 IP 地址吗?
对于 IPv4,您 可以避免 存储 IP 地址的 4 个原始字节(IP 地址中句点之间的每个数字都是 0-255,即一个字节)。但是你必须翻译进出数据库,这很麻烦。
IPv6 地址为 128 位(与 IPv4 地址的 32 位相反)。它们通常写成 8 组 4 个十六进制数字,用冒号分隔:2001:0db8:85a3:0000:0000:8a2e:0370:7334. 39 个字符适合以这种格式存储 IPv6 地址。
2001:0db8:85a3:0000:0000:8a2e:0370:7334
编辑:但是,有一个警告,有关 IPv4 映射的 IPv6 地址的详细信息,请参阅@Deepak 的答案。(正确的最大 IPv6 字符串长度为 45 个字符 。)