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

什么是正确的字段types的IP地址在MySQL? 什么是使用PHP存储它的正确方法?

本教程可能会帮助你。

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

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

您可以将它们存储在长度为128位(16字节, BINARY(16)VARBINARY(16) )的二进制字段中。 把任何ip地址转换成它的二进制表示,你可以使用php函数inet_pton 。 此方法将适用于IPv4和IPv6地址。 inet_ntop可以用来取回存储的IP地址的string表示(不pipe版本)

一般来说,您可以使用VARCHAR(45),因为它将足够长,甚至可以存储IPv6。