Is there any easy way to convert IP range to array of IPs?
def convertIPrange (start_ip, end_ip)
 #output: array of ips end
end
e.g. input
('192.168.1.105', '192.168.1.108') 
output
['192.168.1.105','192.158.1.106','192.158.1.107','192.158.1.108']
                Use the Ruby standard library IPAddr
# I would suggest naming your function using underscore rather than camelcase
# because of Ruby naming conventions
#
require 'ipaddr'
def convert_ip_range(start_ip, end_ip)
  start_ip = IPAddr.new(start_ip)
  end_ip   = IPAddr.new(end_ip)
  # map to_s if you like, you can also call to_a, 
  # IPAddrs have some neat functions regarding IPs, 
  # be sure to check them out
  #
  (start_ip..end_ip).map(&:to_s) 
end
                        def convertIPrange first, last
  first, last = [first, last]
    .map{|s| s.split(".").inject(0){|i, s| i = 256 * i + s.to_i}}
  (first..last).map do |q|
    a = []
    (q, r = q.divmod(256)) && a.unshift(r) until q.zero?
    a.join(".")
  end
end
convertIPrange('192.168.1.105', '192.168.1.108')
# => ["192.168.1.105", "192.168.1.106", "192.168.1.107", "192.168.1.108"]
convertIPrange('192.255.255.254', '193.0.0.1')
# => ["192.255.255.254", "192.255.255.255", "193.0.0.0", "193.0.0.1"]
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With