Class: IPinfo::IpAddressMatcher
- Inherits:
-
Object
- Object
- IPinfo::IpAddressMatcher
- Defined in:
- lib/ipinfo/ipAddressMatcher.rb
Constant Summary collapse
- @@bogon_list =
[ "0.0.0.0/8", "10.0.0.0/8", "100.64.0.0/10", "127.0.0.0/8", "169.254.0.0/16", "172.16.0.0/12", "192.0.0.0/24", "192.0.2.0/24", "192.168.0.0/16", "198.18.0.0/15", "198.51.100.0/24", "203.0.113.0/24", "224.0.0.0/4", "240.0.0.0/4", "255.255.255.255/32", "::/128", "::1/128", "::ffff:0:0/96", "::/96", "100::/64", "2001:10::/28", "2001:db8::/32", "fc00::/7", "fe80::/10", "fec0::/10", "ff00::/8", "2002::/24", "2002:a00::/24", "2002:7f00::/24", "2002:a9fe::/32", "2002:ac10::/28", "2002:c000::/40", "2002:c000:200::/40", "2002:c0a8::/32", "2002:c612::/31", "2002:c633:6400::/40", "2002:cb00:7100::/40", "2002:e000::/20", "2002:f000::/20", "2002:ffff:ffff::/48", "2001::/40", "2001:0:a00::/40", "2001:0:7f00::/40", "2001:0:a9fe::/48", "2001:0:ac10::/44", "2001:0:c000::/56", "2001:0:c000:200::/56", "2001:0:c0a8::/48", "2001:0:c612::/47", "2001:0:c633:6400::/56", "2001:0:cb00:7100::/56", "2001:0:e000::/36", "2001:0:f000::/36", "2001:0:ffff:ffff::/64" ]
Instance Attribute Summary collapse
-
#required_address ⇒ Object
Returns the value of attribute required_address.
Instance Method Summary collapse
-
#initialize(ip) ⇒ IpAddressMatcher
constructor
A new instance of IpAddressMatcher.
- #matches ⇒ Object
- #parseAddress(ip) ⇒ Object
Constructor Details
#initialize(ip) ⇒ IpAddressMatcher
Returns a new instance of IpAddressMatcher.
66 67 68 69 70 71 72 73 |
# File 'lib/ipinfo/ipAddressMatcher.rb', line 66 def initialize(ip) if !ip.index('/').nil? and ip.index('/') > 0 addr_mask = ip.split('/') ip = addr_mask[0] end @required_address = parseAddress(ip) end |
Instance Attribute Details
#required_address ⇒ Object
Returns the value of attribute required_address.
7 8 9 |
# File 'lib/ipinfo/ipAddressMatcher.rb', line 7 def required_address @required_address end |
Instance Method Details
#matches ⇒ Object
83 84 85 86 87 88 89 90 91 |
# File 'lib/ipinfo/ipAddressMatcher.rb', line 83 def matches for bogon in @@bogon_list do if bogon.include? required_address return true end end false end |
#parseAddress(ip) ⇒ Object
75 76 77 78 79 80 81 |
# File 'lib/ipinfo/ipAddressMatcher.rb', line 75 def parseAddress(ip) begin Resolv.getaddress ip rescue Resolv::ResolvError => e pp e end end |