2009-09-03 4 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))); 
}