0

我有大量使用 Perl 脚本输入的 bind9 查询到一个简单的 MySQL 表中,其中 IP 地址是一个整数,我可以SELECT使用

INET_NTOA(167772161) = '10.01.1.1'

我想选择属于特定 CIDR 块的地址,就像我可以在 PostgreSQL 中使用类似

WHERE IP << '10.0.0.0/16'".

现在我想要的是找到表中属于例如10.0.0.0/8或任何网络块的所有地址。

有任何想法吗?

问候,埃尔

4

1 回答 1

0

您可以在 MySQL 中使用位移位运算符。再做一点工作:

select 167772169 >> 16, inet_aton('10.0.0.0') >> 16

返回与网络地址相同的整数(右移 16 位)。

于 2014-03-02T19:09:15.133 回答