从 postgres db 接收 IP 地址的所有匹配网络

receive all matching networks for IP address from postgres db

我有一个带有 table networks 的 postgres 数据库,其中包括一列 network 类型的 cidr。我想对包含我提供的 IP 地址的所有网络进行排队。我找不到如何执行此操作。

目前我拉所有网络,然后使用include?方法IPAddr class提供:

Network.all.each{|row| pp row if row.network.include?("10.176.0.5")}

您可以使用为 cidr 类型定义的 postgres 的 >>= 运算符(包括或等于)或 >>(包括):

Network.where(['network >> ?', "10.176.0.5"])