Module: IPAddrExt::Extensions

Defined in:
lib/ipaddr-ext/extensions.rb

Instance Method Summary collapse

Instance Method Details

#+(offset) ⇒ Object

Returns a address greater than the original address by offset

Parameters:

  • offset (Integer)


41
42
43
# File 'lib/ipaddr-ext/extensions.rb', line 41

def +(offset)
  self.clone.set(@addr + offset, @family)
end

#-(offset) ⇒ Object

Returns a address less than the original address by offset

Parameters:

  • offset (Integer)


47
48
49
# File 'lib/ipaddr-ext/extensions.rb', line 47

def -(offset)
  self.clone.set(@addr - offset, @family)
end

#broadcastObject

Returns the broadcast address



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/ipaddr-ext/extensions.rb', line 6

def broadcast
  case @family
  when Socket::AF_INET
    unless prefix == 32
      broadcast_addr = @addr + (IPAddr::IN4MASK ^ @mask_addr)
      return self.clone.set(broadcast_addr, @family)
    else
      return self.clone
    end

  when Socket::AF_INET6
    nil

  else
    raise AddressFamilyError, "unsupported address family"
  end
end

#to_hostObject

Returns the host address



52
53
54
55
56
57
58
59
60
61
# File 'lib/ipaddr-ext/extensions.rb', line 52

def to_host
  case @family
  when Socket::AF_INET
    self.mask(32)
  when Socket::AF_INET6
    self.mask(128)
  else
    raise AddressFamilyError, "unsupported address family"
  end
end

#to_s_with_prefixObject

Returns the address with prefix



64
65
66
# File 'lib/ipaddr-ext/extensions.rb', line 64

def to_s_with_prefix
  "#{self.to_s}/#{prefix}"
end

#wildcard_maskObject

Returns the wildcard mask in string format e.g. 0.0.255.255 ref: github.com/ruby/ipaddr/pull/44



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/ipaddr-ext/extensions.rb', line 26

def wildcard_mask
  case @family
  when Socket::AF_INET
    mask = IPAddr::IN4MASK ^ @mask_addr
  when Socket::AF_INET6
    mask = IPAddr::IN6MASK ^ @mask_addr
  else
    raise AddressFamilyError, "unsupported address family"
  end

  _to_string(mask)
end