class Geocoder::IpAddress

Constants

PRIVATE_IPS

Public Class Methods

new(ip) click to toggle source
Calls superclass method
# File lib/geocoder/ip_address.rb, line 10
def initialize(ip)
  ip = ip.to_string if ip.is_a?(IPAddr)
  if ip.is_a?(Hash)
    super(**ip)
  else
    super(ip)
  end
end

Public Instance Methods

internal?() click to toggle source
# File lib/geocoder/ip_address.rb, line 19
def internal?
  loopback? || private?
end
loopback?() click to toggle source
# File lib/geocoder/ip_address.rb, line 23
def loopback?
  valid? and !!(self == "0.0.0.0" or self.match(/\A127\./) or self == "::1")
end
private?() click to toggle source
# File lib/geocoder/ip_address.rb, line 27
def private?
  valid? && PRIVATE_IPS.any? { |ip| ip.include?(self) }
end
valid?() click to toggle source
# File lib/geocoder/ip_address.rb, line 31
def valid?
  ip = self[/(?<=\[)(.*?)(?=\])/] || self
  !!((ip =~ Resolv::IPv4::Regex) || (ip =~ Resolv::IPv6::Regex))
end