Mysql:从二进制ip和子网获取IPv6二进制网络掩码
我有一个表,它将IPv6地址存储为二进制(16),子网存储为INT(3) 我认为通过以下操作获得网络掩码会很简单:Mysql:从二进制ip和子网获取IPv6二进制网络掩码,mysql,mariadb,ipv6,bitwise-operators,Mysql,Mariadb,Ipv6,Bitwise Operators,我有一个表,它将IPv6地址存储为二进制(16),子网存储为INT(3) 我认为通过以下操作获得网络掩码会很简单: SELECT ~INET6_ATON('::') << (128 - subnet); 非常感谢您的帮助 编辑:我完全误解了Maria的版本字符串,抱歉:-(5.5中的位操作限制为64位。(8.0放宽了限制。)。 5.5已经很老了。如果你升级,要么转储并重新加载,要么分3步升级:5.5->5.6->5.7->8.0) 您可能需要右移>。或者(5.5中的1位操作限制为6
SELECT ~INET6_ATON('::') << (128 - subnet);
非常感谢您的帮助
编辑:我完全误解了Maria的版本字符串,抱歉:-(5.5中的位操作限制为64位。(8.0放宽了限制。)。 5.5已经很老了。如果你升级,要么转储并重新加载,要么分3步升级:5.5->5.6->5.7->8.0)
您可能需要右移
>
。或者(5.5中的1位操作限制为64位。(8.0放宽了限制。)。
5.5已经很老了。如果你升级,要么转储并重新加载,要么分3步升级:5.5->5.6->5.7->8.0)
您可能想要右移>
。或者(1抱歉,我读错了版本字符串。它是Maria 10,所以128位字符串上的按位操作应该是可能的?@下划线EZ-MariaDB 10.1对应,大致相当于MySQL 5.6。我很确定它仍然对必要的位操作有64位限制。抱歉,我读错了版本字符串。它是Maria 10,所以128位字符串上的按位操作是可能的Ring应该是可能的?@下划线EZ-MariaDB 10.1对应,大致相当于MySQL 5.6。我很确定它在必要的位操作上仍然有64位的限制。
+-----------------+
| VERSION() |
+-----------------+
| 10.1.30-MariaDB |
+-----------------+
SELECT HEX(~((1 << 8) - 1)); --> FFFFFFFFFFFFFF00