method
mask!
v2_1_10 -
Show latest stable
- Class:
IPAddr
mask!(mask)protected
# File lib/ipaddr.rb, line 411
def mask!(mask)
if mask.kind_of?(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
@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?
- mask
- native
- reverse
- succ
- to_i
- to_range
- to_s
- to_string
- |
- ~
- Class methods
- new
- new_ntoh
- ntop
- Protected methods
-
mask! -
set - Private methods
-
_reverse -
_to_string -
addr_mask -
coerce_other -
in6_addr -
in_addr