in reply to Generating IPv6 Masks
Perhaps something modeled after Net::Netmask's imask using Math::BigInt?
use Math::BigInt (); sub ipv6_mask { my $bits = shift; my $mask = Math::BigInt->new( 2 )->bpow( 128 ) - Math::BigInt->new( 2 )->bpow( 128 - $bits ); return $mask->as_hex; }
Update: Ooop, you wanted an array of octets. return unpack( "a2"x16, $mask->as_hex ) will get you that.
|
|---|