네트워크 프로그래밍에서 IP 주소 처리는 매우 일반적인 작업입니다. IP 주소는 일반적으로 "192.168.0.1"과 같은 문자열 형식으로 나타나지만 일부 시나리오에서는 저장, 비교 또는 계산을 위해 정수 값으로 변환해야합니다. PHP는 매우 편리한 내장 기능 IP2Long 을 제공 하므로이 변환을 쉽게 완료 할 수 있습니다.
IP2Long 은 PHP의 내장 기능입니다. 그 기능은 점선 소수점 IPv4 주소를 해당 정수 형태로 변환하는 것입니다. 변환 된 정수는 데이터베이스 스토리지, 범위 판단 또는 기타 네트워크 관련 작업에 사용할 수 있습니다.
ip2long(string $ip): int|false
$ IP : 변환 할 문자열 형식의 IPv4 주소.
반환 값은 해당 정수이며 IP 주소가 유효하지 않으면 False가 반환됩니다.
다음은 IP2Long을 사용하여 IP 주소를 정수로 변환하는 방법을 보여주는 간단한 예입니다.
<?php
$ip = "192.168.0.1";
$ipLong = ip2long($ip);
if ($ipLong !== false) {
echo "IP 주소 {$ip} 해당 정수는입니다:{$ipLong}";
} else {
echo "유효하지 않은 IP 주소。";
}
?>
출력 결과 :
IP 주소 192.168.0.1 해당 정수는입니다:3232235521
데이터베이스 스토리지 최적화 <br> IP 주소를 정수로 변환 한 다음 데이터베이스에 저장하면 저장 공간을 줄이고 쿼리 속도를 높일 수 있습니다.
IP 주소 범위의 비교 <br> 예를 들어, IP가 특정 네트워크 세그먼트 내에 있는지 확인하기 위해 정수 크기를 비교하여 달성 할 수 있습니다.
안전한 필터링 <br> 방화벽 또는 액세스 제어 목록에서 빠른 필터링을 위해 정수 IP를 사용하십시오.
정수 IP 주소를 문자열 형식으로 다시 변환하려면 PHP의 Long2IP 함수를 사용할 수 있습니다.
예:
<?php
$ipLong = 3232235521;
$ip = long2ip($ipLong);
echo "정수 {$ipLong} 동 IP 주소是:{$ip}";
?>
산출:
정수 3232235521 동 IP 주소是:192.168.0.1
IP2Long은 IPv4 주소 만 지원하며 IPv6을 지원하지 않습니다.
반환 된 정수 유형은 서명 된 32 비트 정수이며 일부 32 비트 시스템에서 음수 값을 가질 수 있습니다.
IP 주소 형식이 올바르지 않으면 함수가 False를 반환하고 사용할 때 판단이 이루어져야합니다.
IP2long 기능을 이해하고 마스터하면 IP 주소를 다룰 때보다 효율적이고 간결하게 만들 수 있습니다. 데이터베이스와 네트워크 프로그래밍의 요구를 결합 하여이 작은 기능은 개발에서 좋은 도우미가됩니다.