在MySQL中存储IPv6地址
正如“具有ipv6功能的inet_aton和inet_ntoa功能所需
”中所要求的那样,当前没有用于存储IPv6地址的MySQL函数。建议用于存储/插入的数据类型/功能是什么?(我不打算将它们存储为字符串)。我也不想将IPv6地址分为2个INT。
回答:
怎么样:
BINARY(16)
那应该足够有效。
如该错误报告中所述,当前在MySQL服务器中没有将文本IPv6地址从二进制转换为二进制的功能。您需要在应用程序中执行此操作,或者可能需要在MySQL服务器中创建UDF(用户定义的函数)来执行此操作。
MySQL 5.6.3支持IPv6地址,请参见以下内容:“
INET6_ATON(expr) ”。
数据类型VARBINARY(16)
不是BINARY(16)
我之前建议的那样。这样做的唯一原因是MySQL函数可同时用于IPv6和IPv4地址。BINARY(16)
仅存储IPv6地址并节省一个字节就可以了。VARBINARY(16)
同时处理IPv6和IPv4地址时应使用。
对于旧版本的MySQL和MariaDB的实现,请参见以下内容:“ 使用IPV6功能扩展MYSQL
5
”。
以上是 在MySQL中存储IPv6地址 的全部内容, 来源链接: utcz.com/qa/433747.html