gpt4 book ai didi

mysql - 在 MySQL 中存储 IPv6 地址

转载 作者:IT老高 更新时间:2023-10-28 12:57:36 24 4
gpt4 key购买 nike

正如“ipv6-capable inet_aton and inet_ntoa functions needed”中所要求的,目前没有用于存储 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 地址并节省一个字节。处理 IPv6 和 IPv4 地址时应使用 VARBINARY(16)

旧版本 MySQL 和 MariaDB 的实现,请参见以下内容:“EXTENDING MYSQL 5 WITH IPV6 FUNCTIONS”。

关于mysql - 在 MySQL 中存储 IPv6 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6964143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com