MySQL 目前缺乏存储 IPv6 地址的特定函数。此问题解决了此任务的推荐方法。
推荐数据类型
存储 IPv6 地址的推荐数据类型是 BINARY(16)。该数据类型有效地表示二进制格式的 128 位 IPv6 地址。
插入 IPv6 地址的函数
不幸的是,MySQL 没有提供内置函数将文本 IPv6 地址转换为二进制地址。因此,您需要在应用程序中实现此转换或在 MySQL 中创建用户定义函数 (UDF) 来处理此任务。
MySQL 5.6.3 及更高版本
MySQL 5.6.3 引入了对 IPv6 地址的支持。用于存储 IPv6 地址的数据类型现在为 VARBINARY(16),并且可以使用 INET6_ATON(expr) 函数将文本 IPv6 地址转换为二进制。
MySQL 5.6.3 之前的版本和 MariaDB
对于旧版本的 MySQL 和 MariaDB,您可以使用“扩展 MYSQL”中描述的实现5 具有 IPV6 功能”以添加 IPv6 支持。该解决方案提供了用于在文本和二进制 IPv6 地址之间进行转换的 UDF。
以上是如何在 MySQL 中最好地存储 IPv6 地址?的详细内容。更多信息请关注PHP中文网其他相关文章!