ruby-on-rails - 从 postgres db 接收 IP 地址的所有匹配网络
问题描述
我有一个 postgres 数据库,networks
其中包含一个network
cidr 类型的列。我想对包含我提供的 IP 地址的所有网络进行排队。我找不到如何做到这一点。
目前我拉所有网络,然后使用include?
IPAddr 类提供的方法:
Network.all.each{|row| pp row if row.network.include?("10.176.0.5")}
解决方案
您可以使用为 cidr 类型定义的 postgres>>=
运算符(包括或等于)或>>
(包括):
Network.where(['network >> ?', "10.176.0.5"])
推荐阅读
- c - 如何从循环中找到百分比并返回浮点数
- javascript - 处理小时数组
- angular - 如何使用 Angular Formly Schematics 生成真实表单
- javascript - Bulk Upsert Javascript 存储过程总是超过 5 秒的执行上限并导致超时
- android - 如何使用CameraX检查相机是否支持Android上的自动对焦?
- java - 如何通过 Html.fromHtml(text) 更改在 TextView 中加载的默认图像(占位符)
- azure - 从函数应用程序 c# 中的 Azure blob 存储读取大型 XML 文件
- java - 如何从 .properties 文件中捕获 SQL 语法错误?
- vaadin - 在 Vaadin14 中打开外部 BIRT 链接时出现问题
- python - 带有月份和日期的python中的闰日数