在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

回到顶部