mysql - 如何读取 MySQL 中以 varbinary 形式存储的 IPv6 地址?

标签 mysql ipv6 varbinary

我使用 PHP 函数 inet_pton($_SERVER['REMOTE_ADDR']) 将 IPv6 地址存储为 varbinary。当我运行 SQL 查询时,例如:

SELECT ip_address FROM some_table WHERE id='some_id';

我无法读取 ip_address,因为它是二进制 格式。

我注意到MySQL version 5.6中有一个相应的MySQL函数INET6_NTOA(expr)将其恢复为可读格式。不幸的是,我使用的是MySQL 5.5版本,它没有这个功能。

有没有其他方法可以读取 IPv6 地址,而无需返回 PHP 进行转换?我可以使用工作台中的编辑器轻松读取二进制字符串的十六进制表示法,如附图所示,所以我认为应该有一种简单的方法来做到这一点。

enter image description here

最佳答案

您可以编写用户定义的函数来为您执行转换并在 select 子句中调用它们。请参阅this链接以获取更多信息。

关于mysql - 如何读取 MySQL 中以 varbinary 形式存储的 IPv6 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10039285/

相关文章:

linux - 查询和修改接口(interface)高级信息

c# - 如果我查询 SQL Server VarBinary(MAX) 列,整个文件是否会加载到内存中?

php - 在 localhost 上为 php/mysql 项目模拟网站

php - 静态页面报表过滤MYsql数据

mysql - 按 LEFT JOIN 内部排序

linux - 如何在 Linux 中通过特定接口(interface)发送多播数据包

python - Django默认隔离级别和db二进制日志格式错误

ipv6 - 将 CIDR 表示法中的 IPv4 IP 范围映射到 IPv6

sql-server - 从 SQL Server varbinary 列临时检索数据

c# - 如何将MySQL生成的UUID放入C#变量中