如何使用 Ruby 将 IP 范围转换为单个 CIDR

How to convert IP range to a single CIDR using Ruby

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

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

cidr = netaddr.iprange_to_cidrs(startip, endip)

我在 Whosebug 上查看了其他问题,其中 none 是关于将 IP 地址范围转换为 单个 CIDR,例如:

startip = '250.154.64.0'
endip = '250.154.64.255'

output: '250.154.64.0/24'

找到了!

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