【问题标题】:what is the equivalent to PostgereSQL's "ip <<"?PostgereSQL 的“ip <<”等价于什么?
【发布时间】:2014-04-03 13:26:55
【问题描述】:

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

INET_NTOA(167772161) = '10.01.1.1'

我想像我一样选择属于特定 CIDR 块的地址 在 PostgreSQL 中类似

WHERE IP &lt;&lt; '10.0.0.0/16'".

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

有什么想法吗?

你好,el

【问题讨论】:

  • 由于 MySQL 没有 IP 地址的本机数据类型,我想说没有与该运算符等效的。您需要为此编写自己的存储函数。

标签: mysql ip-address cidr


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2023-02-02
    相关资源
    最近更新 更多