#!/usr/bin/ruby

require 'ipv4range'

o1, o2, o3, o4, prefix = *(ARGV.map! {|i| i.to_i })
ip = IPv4Range.new

f = ip.overlap?(o1, o2, o3, o4, prefix)
if f then
  a = ip.overlap(o1, o2, o3, o4, prefix)
  a.each_hash do |r|
    info = IPv4Range::get_ip_info(r['a1'].to_i, r['a2'].to_i, r['a3'].to_i, r['a4'].to_i, r['prefix'].to_i)
    n = info[:network][:dot]#.map! {|i| i.to_s }
    b = info[:broadcast][:dot]#.map! {|i| i.to_s }
    p "#{n.join('.')}-#{b.join('.')}(/#{r['prefix']})"
  end
end
