class Iface::IpAddress
Represents an IP address including prefix length
Public Class Methods
create(str)
click to toggle source
# File lib/iface/ip_address.rb, line 8 def self.create(str) ipaddr = IPAddr.new(str) (ipaddr.ipv4? ? IpV4Address : IpV6Address).new(ipaddr) end
new(ip_address)
click to toggle source
# File lib/iface/ip_address.rb, line 13 def initialize(ip_address) @ipaddr = ip_address.is_a?(IPAddr) ? ip_address : IPAddr.new(ip_address) @mask_addr = @ipaddr.instance_eval { @mask_addr } @_bitmask = @mask_addr.to_s(2) @inverse_mask_addr = @_bitmask.tr('01', '10').to_i(2) end
Public Instance Methods
==(other)
click to toggle source
# File lib/iface/ip_address.rb, line 47 def ==(other) self.class == other.class && __state__ == other.__state__ end
cidr_mask()
click to toggle source
# File lib/iface/ip_address.rb, line 20 def cidr_mask case diff = full_mask - @mask_addr when 0 full_cidr_mask when 1 full_cidr_mask - 1 else full_cidr_mask - Math.log2(diff).ceil end end
full_cidr_mask()
click to toggle source
# File lib/iface/ip_address.rb, line 43 def full_cidr_mask raise NotImplementedError end
full_mask()
click to toggle source
# File lib/iface/ip_address.rb, line 39 def full_mask raise NotImplementedError end
to_i()
click to toggle source
# File lib/iface/ip_address.rb, line 31 def to_i @ipaddr.to_i end
to_s()
click to toggle source
# File lib/iface/ip_address.rb, line 35 def to_s @ipaddr.to_s end
Protected Instance Methods
__state__()
click to toggle source
# File lib/iface/ip_address.rb, line 53 def __state__ @ipaddr end