Network ip2long
(PHP 4, PHP 5, PHP 7, PHP 8)
ip2long — (IPv4) 인터넷 프로토콜 점으로 구분된 주소를 포함하는 문자열을 긴 정수로 변환합니다.
설명
ip2long(string $ip
): int|false
ip2long() 함수는 인터넷 표준 형식(점으로 구분된 문자열) 표현에서 IPv4 인터넷 네트워크 주소의 긴 정수 표현을 생성합니다.
ip2long()은 불완전한 IP 주소에서도 작동합니다. 자세한 내용은 » http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm을 참조하세요.
매개변수
ip
- 표준 형식 주소입니다.
반환 값
긴 정수를 반환하거나 ip가 유효하지 않은 경우 false
를 반환합니다.
Examples
예제 #1 ip2long() 예제
<?php
$ip = gethostbyname('www.example.com');
$out = "The following URLs are equivalent:<br />\n";
$out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>
예제 #2 IP 주소 표시
이 두 번째 예는 printf() 함수를 사용하여 변환된 주소를 인쇄하는 방법을 보여줍니다.
<?php
$ip = gethostbyname('www.example.com');
$long = ip2long($ip);
if ($long == -1 || $long === FALSE) {
echo 'Invalid IP, please try again';
} else {
echo $ip . "\n"; // 192.0.34.166
echo $long . "\n"; // 3221234342 (-1073732954 on 32-bit systems, due to integer overflow)
printf("%u\n", ip2long($ip)); // 3221234342
}
?>
메모
메모: PHP의 int 유형은 서명되어 있고 많은 IP 주소는 32비트 아키텍처에서 음의 정수가 되기 때문에 서명되지 않은 IP 주소의 문자열 표현을 얻으려면 sprintf() 또는 printf()의 "%u" 포맷터를 사용해야 합니다.
메모: ip2long()은 정수 값 오버플로로 인해 32비트 시스템에서 IP 255.255.255.255
에 대해 -1
을 반환합니다.