sub dotted_quad_to_network { my ($dq_address) = @_; $dq_address =~ /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/; return (($1 << 24) + ($2 << 16) + ($3 << 8) + $4); } sub network_to_dotted_quad { my ($address) = @_; return sprintf ("%d.%d.%d.%d", $address >> 24, ($address << 8) >> 24, ($address << 16) >> 24, ($address << 24) >> 24); }