2011-03-20 74 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