使用PHP在MySQL数据库中存储的IP地址

时间:2011-06-21 15:22:44

标签: php mysql database ip field

mysql中IP地址的正确字段类型是什么?什么是使用PHP存储它的正确方法?

3 个答案:

答案 0 :(得分:61)

This tutorial可能会对您有所帮助。

保存IPv4地址的最有效方法是使用INT字段(不是您所期望的VARCHAR)。您可以使用PHP的ip2long转换它们,然后使用MySQL的INET_NTOA函数或PHP的long2ip函数进行转换。

如果您需要存储IPv6,则需要使用BINARY字段和PHP的inet_pton函数。

答案 1 :(得分:50)

您可以将它们存储在长度为128位(16字节,BINARY(16)VARBINARY(16))的二进制字段中。 要将任何IP地址转换为其二进制表示,您可以使用php函数inet_pton。此方法适用于IPv4和IPv6地址。 inet_ntop可用于获取存储的ip地址的字符串表示形式(无论版本如何)

答案 2 :(得分:17)

通常,您可以使用VARCHAR(45),因为它足够长,甚至可以存储IPv6。