gpt4 book ai didi

mysql - 如果 IPV6 IP 存储在 INT(10) UNSIGNED 中,如何从 mysql 数据库检索它们

转载 作者:行者123 更新时间:2023-11-29 06:48:09 24 4
gpt4 key购买 nike

我有一个 mysql 数据库,其中有一个表,其中 ipv4 和 ipv6 ip 存储为 INT(10) UNSIGNED 。为了检索 ipv4 IP 地址,我使用函数 INET_NTOA:

从 mytable1 中选择 INET_NTOA( client_ip );

非常适合 ipv4 IP。但所有 ipv6 ip 都会返回:

6.0.0.0

如果我尝试使用函数 INET6_NTOA ( client_ip )INET6_NTOA(UNHEX( client_ip )) 检索 ipv4 和 ipv6 ip,它不起作用,我只是得到输出:

NULL

INET6_NTOA(client_ip)

或者:

NULL

INET6_NTOA(UNHEX( client_ip ))

还有其他方法可以从我的数据库检索 ipv6 IP 吗?需要在 bash 中执行此操作。

数据库版本:10.2.12-MariaDB MariaDB服务器

最佳答案

INT(10) UNSIGNED 列是 4 bytes ,即 32 位。

IPv6 地址是 128 bits .

您存储在该列中的任何 IPv6 地址都将被截断且无法恢复。

要在 MySQL 中存储 IPv6 地址,请使用 VARBINARY(16) (由 INET6_ATON 返回)或 BINARY(16)

关于mysql - 如果 IPV6 IP 存储在 INT(10) UNSIGNED 中,如何从 mysql 数据库检索它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48588678/

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