小编典典

IPv6地址的文本表示的最大长度?

all

我想将$_SERVER["REMOTE_ADDR"]PHP 返回的数据存储到数据库字段中,非常简单的任务,真的。问题是我找不到有关IPv6 地址
文本表示 的最大长度的任何适当信息,这是网络服务器通过$_SERVER["REMOTE_ADDR"].

我对将文本表示形式转换为地址通常编码的 128 位不感兴趣,我只想知道最多需要多少个字符来存储$_SERVER["REMOTE_ADDR"].


阅读 208

收藏
2022-03-11

共1个答案

小编典典

45 个字符

您可能希望一个地址是

0000:0000:0000:0000:0000:0000:0000:0000

8 * 4 + 7 = 39

8组4位数,中间7位数:

但是,如果您有一个IPv4 映射的 IPv6 地址,则最后两组可以以 10 为基数写入,由
分隔.,例如。[::ffff:192.168.100.228]. 完整地写出来:

0000:0000:0000:0000:0000:ffff:192.168.100.228

(6 * 4 + 5) + 1 + (4 * 3 + 3) = 29 + 1 + 15 = 45

请注意,这是一个输入/显示约定——它仍然是一个 128
位地址,为了存储,最好将原始冒号分隔格式标准化,即[0000:0000:0000:0000:0000:ffff:c0a8:64e4]上面的地址。

2022-03-11