module IpWrangler::Ip

Public Instance Methods

parse_ip(ip) click to toggle source
# File lib/ip_wrangler/ip.rb, line 3
def parse_ip(ip)
  ip.split(/\./).map { |octet| octet.to_i }
end
range_ips(start, stop) click to toggle source
# File lib/ip_wrangler/ip.rb, line 15
def range_ips(start, stop)
  if validate_ip(start) && validate_ip(stop)
    start = start.inject { |sum, octet| sum * 256 + octet }
    stop = stop.inject { |sum, octet| sum * 256 + octet }

    (start..stop).map do |ip|
      IP.new([(ip / 16777216) % 256,
              (ip / 65536) % 256,
              (ip / 256) % 256,
              ip % 256])
    end
  end
end
range_ports(start, stop, ip, protocol) click to toggle source
# File lib/ip_wrangler/ip.rb, line 33
def range_ports(start, stop, ip, protocol)
  (start..stop).map { |port| Port.new(ip, port, protocol) }
end
str_ip(ip) click to toggle source
# File lib/ip_wrangler/ip.rb, line 7
def str_ip(ip)
  "#{ip[0]}.#{ip[1]}.#{ip[2]}.#{ip[3]}"
end
validate_ip(ip) click to toggle source
# File lib/ip_wrangler/ip.rb, line 11
def validate_ip(ip)
  ip.select { |octet| octet < 0 || octet > 255 }.length == 0
end
validate_port(port) click to toggle source
# File lib/ip_wrangler/ip.rb, line 29
def validate_port(port)
  port > 0 && port < 65536
end