Ruby: How to convert IP range to array of IP's

ip, ruby

Solution

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

Problem

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'] ```

Original source