【问题标题】:How to convert IP range to a single CIDR using Ruby如何使用 Ruby 将 IP 范围转换为单个 CIDR
【发布时间】:2023-10-28 08:09:01
【问题描述】:

Ruby 是否有一种将 IP 地址范围转换为 CIDR 的简单方法?

我知道在 Python 中我们可以这样做:

cidr = netaddr.iprange_to_cidrs(startip, endip)

我在 * 上查看了其他问题,但没有一个是关于将 IP 地址范围转换为单个 CIDR,例如:

startip = '250.154.64.0'
endip = '250.154.64.255'

output: '250.154.64.0/24'

【问题讨论】:

  • 谢谢@VishwasNahar,但是在那个问题中,他们不会将一系列 IP 地址转换为单个 CIDR

标签: ruby ip cidr


【解决方案1】:

找到了!

require 'netaddr'

startip = '250.154.64.0'
endip = '250.154.64.255'

ip_net_range = NetAddr.range(startip, endip, :Inclusive => true, :Objectify => true)
cidrs = NetAddr.merge(ip_net_range, :Objectify => true)

puts cidrs

输出:250.154.64.0/24

【讨论】: