Class: IPv4Address
- Inherits:
-
IPAddr
- Object
- IPAddr
- IPv4Address
- Defined in:
- lib/ipv4_address.rb
Constant Summary collapse
- RESERVED =
by IANA
['128.0.0.0/16', '191.255.0.0/16', '192.0.0.0/24', '223.255.255.0/24']
- PRIVATE =
['10.0.0.0/8', '172.16.0.0/12', '192.168.0.0/16']
- LOOPBACK =
['127.0.0.0/8']
- LINK_LOCAL =
['169.254.0.0/16']
- DOCUMENTATION =
['192.0.2.0/24']
- IPV6_RELAY =
['192.88.99.0/24']
- BENCHMARK =
['198.18.0.0/15']
- MULTICAST =
['224.0.0.0/4']
Class Method Summary collapse
- .benchmark?(addr) ⇒ Boolean
- .documentation?(addr) ⇒ Boolean
- .internet_routable?(addr) ⇒ Boolean
- .ipv6_relay?(addr) ⇒ Boolean
- .is?(addr) ⇒ Boolean
- .link_local?(addr) ⇒ Boolean
- .loopback?(addr) ⇒ Boolean
- .multicast?(addr) ⇒ Boolean
- .private?(addr) ⇒ Boolean
- .reserved?(addr) ⇒ Boolean
Instance Method Summary collapse
- #benchmark? ⇒ Boolean
- #documentation? ⇒ Boolean
- #internet_routable? ⇒ Boolean
- #ipv6_relay? ⇒ Boolean
- #link_local? ⇒ Boolean
- #loopback? ⇒ Boolean
- #multicast? ⇒ Boolean
- #private? ⇒ Boolean
- #reserved? ⇒ Boolean
Class Method Details
.benchmark?(addr) ⇒ Boolean
91 92 93 94 95 96 97 |
# File 'lib/ipv4_address.rb', line 91 def self.benchmark?(addr) begin new(addr).benchmark? rescue false end end |
.documentation?(addr) ⇒ Boolean
67 68 69 70 71 72 73 |
# File 'lib/ipv4_address.rb', line 67 def self.documentation?(addr) begin new(addr).documentation? rescue false end end |
.internet_routable?(addr) ⇒ Boolean
122 123 124 |
# File 'lib/ipv4_address.rb', line 122 def self.internet_routable?(addr) is?(to_s) && new(addr).internet_routable? end |
.ipv6_relay?(addr) ⇒ Boolean
79 80 81 82 83 84 85 |
# File 'lib/ipv4_address.rb', line 79 def self.ipv6_relay?(addr) begin new(addr).ipv6_relay? rescue false end end |
.is?(addr) ⇒ Boolean
126 127 128 129 130 131 132 133 |
# File 'lib/ipv4_address.rb', line 126 def self.is?(addr) begin IPAddr.new(addr) true rescue false end end |
.link_local?(addr) ⇒ Boolean
55 56 57 58 59 60 61 |
# File 'lib/ipv4_address.rb', line 55 def self.link_local?(addr) begin new(addr).link_local? rescue false end end |
.loopback?(addr) ⇒ Boolean
43 44 45 46 47 48 49 |
# File 'lib/ipv4_address.rb', line 43 def self.loopback?(addr) begin new(addr).loopback? rescue false end end |
.multicast?(addr) ⇒ Boolean
103 104 105 106 107 108 109 |
# File 'lib/ipv4_address.rb', line 103 def self.multicast?(addr) begin new(addr).multicast? rescue false end end |
.private?(addr) ⇒ Boolean
31 32 33 34 35 36 37 |
# File 'lib/ipv4_address.rb', line 31 def self.private?(addr) begin new(addr).private? rescue false end end |
.reserved?(addr) ⇒ Boolean
19 20 21 22 23 24 25 |
# File 'lib/ipv4_address.rb', line 19 def self.reserved?(addr) begin new(addr).reserved? rescue false end end |
Instance Method Details
#benchmark? ⇒ Boolean
87 88 89 |
# File 'lib/ipv4_address.rb', line 87 def benchmark? exist_in_pool?(BENCHMARK) end |
#documentation? ⇒ Boolean
63 64 65 |
# File 'lib/ipv4_address.rb', line 63 def documentation? exist_in_pool?(DOCUMENTATION) end |
#internet_routable? ⇒ Boolean
111 112 113 114 115 116 117 118 119 120 |
# File 'lib/ipv4_address.rb', line 111 def internet_routable? !reserved? && !private? && !loopback? && !link_local? && !documentation? && !ipv6_relay? && !benchmark? && !multicast? end |
#ipv6_relay? ⇒ Boolean
75 76 77 |
# File 'lib/ipv4_address.rb', line 75 def ipv6_relay? exist_in_pool?(IPV6_RELAY) end |
#link_local? ⇒ Boolean
51 52 53 |
# File 'lib/ipv4_address.rb', line 51 def link_local? exist_in_pool?(LINK_LOCAL) end |
#loopback? ⇒ Boolean
39 40 41 |
# File 'lib/ipv4_address.rb', line 39 def loopback? exist_in_pool?(LOOPBACK) end |
#multicast? ⇒ Boolean
99 100 101 |
# File 'lib/ipv4_address.rb', line 99 def multicast? exist_in_pool?(MULTICAST) end |
#private? ⇒ Boolean
27 28 29 |
# File 'lib/ipv4_address.rb', line 27 def private? exist_in_pool?(PRIVATE) end |
#reserved? ⇒ Boolean
15 16 17 |
# File 'lib/ipv4_address.rb', line 15 def reserved? exist_in_pool?(RESERVED) end |