我使用 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 进行转换?我可以使用工作台中的编辑器轻松读取二进制字符串的十六进制表示法,如附图所示,所以我认为应该有一种简单的方法来做到这一点。
最佳答案
您可以编写用户定义的函数来为您执行转换并在 select 子句中调用它们。请参阅this链接以获取更多信息。
关于mysql - 如何读取 MySQL 中以 varbinary 形式存储的 IPv6 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10039285/