可能是重复问题:
我该为MySQL存储IP地址选择什么类型?
一种可以容纳IPv4和IPv6地址的单一数据类型。 我想存储IP地址以限制一个人在我的网站上从他/她的计算机创建的个人资料数量。
可能是重复问题:
我该为MySQL存储IP地址选择什么类型?
一种可以容纳IPv4和IPv6地址的单一数据类型。 我想存储IP地址以限制一个人在我的网站上从他/她的计算机创建的个人资料数量。
IPv4地址使用32位(4字节),IPv6地址使用128位(16字节)。因此,您可以将它们的二进制表示存储在BINARY(16)
或 VARBINARY(16)
字段中。
此外,请参见我对问题“在mysql数据库中存储IP地址”的回答。它还提供了为什么选择其中之一的评论。
varbinary(16)
似乎是最好的选择。 INET6_ATON('172.32.x.x')
可以将 IPv4 和 IPv6 地址都转换为 blob
。同样可以使用 INET6_NTOA
进行转换回来。至少对于存储和检索,不需要在 v4 和 v6 之间搬移代码。 - Tirtha Rinet_pton
/inet_ntop
。 - knittl