IPv4 перевести в integer (число) и обратно
метод для перевода IP в число:
function ip2int($ip)
{
$a = explode('.', $ip);
return ($a[0] * 256 * 256 * 256) + ($a[1] * 256 * 256) + ($a[2] * 256) + $a[3];
}
метод для перевода числа в IP:
int2ip($i)
{
$d0 = (int)($i / 256 / 256 / 256);
$d1 = (int)(($i - ($d0 * 256 * 256 * 256)) / 256 / 256);
$d2 = (int)(($i - ($d0 * 256 * 256 * 256) - ($d1 * 256 * 256)) / 256);
$d3 = $i - ($d0 * 256 * 256 * 256) - ($d1 * 256 * 256) - ($d2 * 256);
return "{$d0}.{$d1}.{$d2}.{$d3}";
}
пример перевода IP в число штатным методом PHP:
<?php
$ip = gethostbyname('disweb.ru');
$long = ip2long($ip);
if ($long == -1 || $long === false)
echo "Не верный IP";
else {
echo "IP: {$ip}\n";
echo "Long: {$long}\n";
}