Как преобразовать диапазон IP-адресов в один CIDR с помощью Ruby

Есть ли в 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'

person mf370    schedule 19.04.2017    source источник
comment
Это может помочь stackoverflow.com/ вопросы/13406603/   -  person Vishwas Nahar    schedule 19.04.2017
comment
Спасибо @VishwasNahar, однако в этом вопросе они не преобразуют диапазон IP-адресов в один CIDR.   -  person mf370    schedule 19.04.2017


Ответы (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

person mf370    schedule 19.04.2017