最近登入一个之前写的旧网站
怎样都登不进去,一直在研究程式码哪里有问题了
结果后来发现,因为我有纪录登入IP,是在MySQL中一个varchar(15)的纪录
拿来记录IPv4("255.255.255.255")是刚好
可是IPv6最长长度可以到39byte
("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff")
从而导致登入失败...
记录一下提醒给其他将网站转往IPv6的人...
==========
不过我是认为比较好的方法是把IPv4来源加上IPv6转换
a.b.c.d=>[::ffff:a.b.c.d]=>128bit binary
我还没试过如果程式/网站把[::ffff:a.b.c.d]当目标去传资料能不能正确运作
==========
顺问一下,到底用[::ffff:a.b.c.d]正确还是[::a.b.c.d]?
在wiki上 http://zh.wikipedia.org/zh-hk/IPv6
前面这样叙述:
ffff:1.2.3.4格式叫做IPv4对映位址,是不建议使用的。
而::1.2.3.4格式叫做IPv4一致位址。
但后面又叙述:
::ffff:0:0/96- 用于IPv4对映位址(参见以下的Transition mechanisms)。
::/96- 这个前置曾用于IPv4相容位址,现已删除。
版主要不要去编修一下wiki啊,前后很多都对不上