Class: IPv4Address

Inherits:
IPAddr
  • Object
show all
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']
['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

Instance Method Summary collapse

Class Method Details

.benchmark?(addr) ⇒ Boolean

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (Boolean)


87
88
89
# File 'lib/ipv4_address.rb', line 87

def benchmark?
  exist_in_pool?(BENCHMARK)
end

#documentation?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/ipv4_address.rb', line 63

def documentation?
  exist_in_pool?(DOCUMENTATION)
end

#internet_routable?Boolean

Returns:

  • (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

Returns:

  • (Boolean)


75
76
77
# File 'lib/ipv4_address.rb', line 75

def ipv6_relay?
  exist_in_pool?(IPV6_RELAY)
end

Returns:

  • (Boolean)


51
52
53
# File 'lib/ipv4_address.rb', line 51

def link_local?
  exist_in_pool?(LINK_LOCAL)
end

#loopback?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/ipv4_address.rb', line 39

def loopback?
  exist_in_pool?(LOOPBACK)
end

#multicast?Boolean

Returns:

  • (Boolean)


99
100
101
# File 'lib/ipv4_address.rb', line 99

def multicast?
  exist_in_pool?(MULTICAST)
end

#private?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/ipv4_address.rb', line 27

def private?
  exist_in_pool?(PRIVATE)
end

#reserved?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/ipv4_address.rb', line 15

def reserved?
  exist_in_pool?(RESERVED)
end