Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
instance method
IPAddr#link_local_multicast?
link_local_multicast?
lib/ipaddr.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.1.0-preview1/lib/ipaddr.rb, line 375
def link_local_multicast?
case @family
when Socket::AF_INET
(@addr & 0xffffff00 == 0xe0000000) && prefix >= 24 # 224.0.0.0/24 Local Network Control Block
when Socket::AF_INET6
(@addr & 0xffff_0000_0000_0000_0000_0000_0000_0000 == 0xff02_0000_0000_0000_0000_0000_0000_0000) && prefix >= 16 || # ff02::/16
(@addr >> 32 == 0xffff && (
(@addr & 0xffffff00 == 0xe0000000) && prefix >= 120 # ::ffff:224.0.0.0/120 (224.0.0.0/24)
))
else
raise AddressFamilyError, "unsupported address family"
end
end
Returns true if the ipaddr is a link-local multicast address. IPv4 addresses in 224.0.0.0/24 and link-local IPv6 Multicast Addresses in ff02::/16 are considered link-local multicast. Link-local multicast IPv4 addresses in the IPv4-mapped IPv6 address range are also considered link-local multicast.