最近登入一個之前寫的舊網站
怎樣都登不進去,一直在研究程式碼哪裡有問題了
結果後來發現,因為我有紀錄登入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啊,前後很多都對不上