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

时间:2017-04-19 11:32:38

标签: ruby ip cidr

Ruby有一种简单的方法可以将一系列IP地址转换为CIDR吗?

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

cidr = netaddr.iprange_to_cidrs(startip, endip)

我在StackOverflow上看到了其他问题,但没有一个是关于将一​​系列IP地址转换为单个 CIDR,例如:

startip = '250.154.64.0'
endip = '250.154.64.255'

output: '250.154.64.0/24'

1 个答案:

答案 0 :(得分: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