2009-09-03 22 views

答えて

10

お望みですip2long()long2ip()です。

$ip = '192.0.34.166'; 
printf("%u\n", ip2long($ip)); // 3221234342 

それはマニュアルで指摘したよう:

注:PHPの整数型は が署名され、多くのIPアドレスが、あなたは「%Uを使用するように を負の整数で 結果が必要になりますので"sprintf() またはprintf()のフォーマッタを使用して、文字列 の符号なしIP アドレスを取得します。ここで

1

PHPの代替機能(プログラム中の単純なコピー/ペースト) -

function inet_aton($ip) 
{ 
    $ip = trim($ip); 
    if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) return 0; 
    return sprintf("%u", ip2long($ip)); 
} 


function inet_ntoa($num) 
{ 
    $num = trim($num); 
    if ($num == "0") return "0.0.0.0"; 
    return long2ip(-(4294967295 - ($num - 1))); 
}