sub is_private { my ($packed_ip) = @_; return $packed_ip =~ m{ ^ (?: \x0A # 10.0.0.0/8 | \xAC[\x10-\x1F] # 172.16.0.0/12 | \xC0\xA8 # 192.168.0.0/16 ) }x; }