首页 > 解决方案 > 从 postgres db 接收 IP 地址的所有匹配网络

问题描述

我有一个 postgres 数据库,networks其中包含一个networkcidr 类型的列。我想对包含我提供的 IP 地址的所有网络进行排队。我找不到如何做到这一点。

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

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

标签: ruby-on-railspostgresqlcidr

解决方案


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

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

推荐阅读