Class: Integer

Inherits:
Object
  • Object
show all
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

Instance Method Details

#max_mask_bitsObject

[View source]

30
31
32
# File 'lib/iface/ip_helpers.rb', line 30

def max_mask_bits
  to_s(2)[/(0*)$/, 1].size
end

#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

#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

#to_ipaddr4Object

[View source]

11
12
13
# File 'lib/iface/ip_helpers.rb', line 11

def to_ipaddr4
  IPAddr.new_ntoh([self].pack('N'))
end

#to_ipaddr6Object

[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