Module: IPAddrExt::Extensions
- Defined in:
- lib/ipaddr-ext/extensions.rb
Instance Method Summary collapse
-
#+(offset) ⇒ Object
Returns a address greater than the original address by offset.
-
#-(offset) ⇒ Object
Returns a address less than the original address by offset.
-
#==(other) ⇒ Object
Returns true if two ipaddrs are equal.
-
#broadcast ⇒ Object
Returns the broadcast address.
-
#to_host ⇒ Object
Returns the host address.
-
#to_s_with_prefix ⇒ Object
Returns the address with prefix.
-
#wildcard_mask ⇒ Object
Returns the wildcard mask in string format e.g.
Instance Method Details
#+(offset) ⇒ Object
Returns a address greater than the original address by offset
52 53 54 |
# File 'lib/ipaddr-ext/extensions.rb', line 52 def +(offset) self.clone.set(@addr + offset, @family) end |
#-(offset) ⇒ Object
Returns a address less than the original address by offset
58 59 60 |
# File 'lib/ipaddr-ext/extensions.rb', line 58 def -(offset) self.clone.set(@addr - offset, @family) end |
#==(other) ⇒ Object
Returns true if two ipaddrs are equal. Overwrite original == method, fixing to compare address with prefix
42 43 44 45 46 47 48 |
# File 'lib/ipaddr-ext/extensions.rb', line 42 def ==(other) other = coerce_other(other) rescue false else @family == other.family && @addr == other.to_i && prefix == other.prefix end |
#broadcast ⇒ Object
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_host ⇒ Object
Returns the host address
63 64 65 66 67 68 69 70 71 72 |
# File 'lib/ipaddr-ext/extensions.rb', line 63 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_prefix ⇒ Object
Returns the address with prefix
75 76 77 78 79 80 81 |
# File 'lib/ipaddr-ext/extensions.rb', line 75 def to_s_with_prefix if defined?(IPAddr::VERSION) && Gem::Version.new(IPAddr::VERSION) >= Gem::Version.new("1.2.7") # Ruby 3.4+ default gem cidr else "#{self.to_s}/#{prefix}" end end |
#wildcard_mask ⇒ Object
Returns the wildcard mask in string format e.g. 0.0.255.255
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 |