2011-03-20 70 views
4

我有一個php站點。我想爲每個用戶存儲最後一個IP。我希望它適用於IPV4和IPV6用戶。任何想法如何?在MySql中存儲IPV6和IPV4,並且還可以讀取它

+0

您的問題在哪裏?連接到數據庫的PHP,數據庫設計,獲取用戶IP,...? – hage 2011-03-20 19:28:11

+0

Dup of:http://stackoverflow.com/questions/420680/how-to-store-ipv6-compatible-address-in-a-relational-database注意接受的答案,它解釋了你將如何區分IPv4和IPv6 – 2011-03-20 19:29:14

回答

6

只需使用inet_pton()將它們轉換爲二進制表示,然後再使用inet_ntop()返回到字符串。

另一種解決方案是在數據庫中存儲IP字符串而不進行任何轉換。 A VARCHAR(39)字段將完成作爲最高/最長IPv6的工作ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff