method
mask!
v2_6_3 -
Show latest stable
- Class:
IPAddr
mask!(mask)protected
# File lib/ipaddr.rb, line 496
def mask!(mask)
case mask
when String
if mask =~ /\A\d+\z/
prefixlen = mask.to_i
else
m = IPAddr.new(mask)
if m.family != @family
raise InvalidPrefixError, "address family is not same"
end
@mask_addr = m.to_i
n = @mask_addr ^ m.instance_variable_get(:@mask_addr)
unless ((n + 1) & n).zero?
raise InvalidPrefixError, "invalid mask #{mask}"
end
@addr &= @mask_addr
return self
end
else
prefixlen = mask
end
case @family
when Socket::AF_INET
if prefixlen < 0 || prefixlen > 32
raise InvalidPrefixError, "invalid length"
end
masklen = 32 - prefixlen
@mask_addr = ((IN4MASK >> masklen) << masklen)
when Socket::AF_INET6
if prefixlen < 0 || prefixlen > 128
raise InvalidPrefixError, "invalid length"
end
masklen = 128 - prefixlen
@mask_addr = ((IN6MASK >> masklen) << masklen)
else
raise AddressFamilyError, "unsupported address family"
end
@addr = ((@addr >> masklen) << masklen)
return self
end Related methods
- Instance methods
- &
- <<
- <=>
- ==
- ===
- >>
- eql?
- hash
- hton
- include?
- inspect
- ip6_arpa
- ip6_int
- ipv4?
- ipv4_compat
- ipv4_compat?
- ipv4_mapped
- ipv4_mapped?
- ipv6?
- link_local?
- loopback?
- mask
- native
- prefix
- prefix=
- private?
- reverse
- succ
- to_i
- to_range
- to_s
- to_string
- |
- ~
- Class methods
- new
- new_ntoh
- ntop
- Protected methods
-
mask! -
set - Private methods
-
_ipv4_compat? -
_reverse -
_to_string -
addr_mask -
coerce_other -
in6_addr -
in_addr