Class: Integer
- Inherits:
-
Object
- Object
- Integer
- Defined in:
- lib/iface/ip_helpers.rb
Overview
Adds IP-related methods to all Integers
Constant Summary collapse
- Mask32_ =
rubocop:disable Style/ConstantName
0xffffffffffffffff
Instance Method Summary collapse
- #max_mask_bits ⇒ Object
- #to_ip(ipver = 4) ⇒ Object
- #to_ipaddr(ipver = 4) ⇒ Object
- #to_ipaddr4 ⇒ Object
- #to_ipaddr6 ⇒ Object
Instance Method Details
permalink #max_mask_bits ⇒ Object
[View source]
30 31 32 |
# File 'lib/iface/ip_helpers.rb', line 30 def max_mask_bits to_s(2)[/(0*)$/, 1].size end |
permalink #to_ip(ipver = 4) ⇒ Object
[View source]
7 8 9 |
# File 'lib/iface/ip_helpers.rb', line 7 def to_ip(ipver = 4) to_ipaddr(ipver).to_s end |
permalink #to_ipaddr(ipver = 4) ⇒ Object
[View source]
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/iface/ip_helpers.rb', line 19 def to_ipaddr(ipver = 4) case ipver when 4 to_ipaddr4 when 6 to_ipaddr6 else raise ArgumentError, "Expecting argument 1 to be either 4 or 6; got #{ipver.inspect}" end end |
permalink #to_ipaddr4 ⇒ Object
[View source]
11 12 13 |
# File 'lib/iface/ip_helpers.rb', line 11 def to_ipaddr4 IPAddr.new_ntoh([self].pack('N')) end |
permalink #to_ipaddr6 ⇒ Object
[View source]
15 16 17 |
# File 'lib/iface/ip_helpers.rb', line 15 def to_ipaddr6 IPAddr.new_ntoh([(self >> 96), (self >> 64) & Mask32_, (self >> 32) & Mask32_, self & Mask32_].pack('N*')) end |