Sha256: 1faf4bc660cf964fbfe995e0be5e359d815756b3eeba92db151f3cbf2280ae5c
Contents?: true
Size: 544 Bytes
Versions: 7
Compression:
Stored size: 544 Bytes
Contents
require 'resolv' module Geocoder class IpAddress < String PRIVATE_IPS = [ '10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16', ].map { |ip| IPAddr.new(ip) }.freeze def internal? loopback? || private? end def loopback? valid? and !!(self == "0.0.0.0" or self.match(/\A127\./) or self == "::1") end def private? valid? && PRIVATE_IPS.any? { |ip| ip.include?(self) } end def valid? !!((self =~ Resolv::IPv4::Regex) || (self =~ Resolv::IPv6::Regex)) end end end
Version data entries
7 entries across 7 versions & 2 rubygems