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