my $int = ip2UL("192.168.0.1");
print $int, "\\n"; # 3232235521
my $ip = UL2ip($int);
print $ip, "\\n"; # 192.168.0.1
sub UL2ip
{
my $int = shift;
return join(".", unpack("C4", pack("N", $int)));
}
sub ip2UL
{
my ($ip, $bin) = shift;
$bin .= unpack("B8", pack("C", $_)) for split(/\\./, $ip);
# $bin = join("", map {unpack("B8", pack("C", $_))} split(/\\./, $ip));
return unpack("N", pack("B32", $bin));
}
Функцию ip2UL скорее всего можно оптимизировать, я уже не стал