PHP의 FILTER_VALIDATE_IP 상수는 입력된 값이 올바른 IP 주소 형식인지 검증하는 데 사용됩니다. filter_var() 함수와 함께 활용하면 사용자가 입력한 IP 주소가 실제로 유효한지 손쉽게 확인할 수 있습니다.
주요 플래그(Flags)
FILTER_VALIDATE_IP는 다양한 옵션 플래그와 조합하여 더 세밀한 검증이 가능합니다.
FILTER_FLAG_IPV4 − 값이 반드시 유효한 IPv4 주소여야 합니다.
FILTER_FLAG_IPV6 − 값이 반드시 유효한 IPv6 주소여야 합니다.
FILTER_FLAG_NO_PRIV_RANGE − 값이 사설(private) IP 대역에 포함되어서는 안 됩니다.
FILTER_FLAG_NO_RES_RANGE − 값이 예약(reserved) IP 대역에 포함되어서는 안 됩니다.
반환값(Return)
FILTER_VALIDATE_IP 상수 자체는 아무런 값을 반환하지 않습니다. 이 상수는 filter_var() 함수의 두 번째 인자로 전달되어 사용되며, 검증 결과에 따라 filter_var()가 유효한 경우 원래 값을, 유효하지 않은 경우 false를 반환합니다.
사용 예제
예제 1: 잘못된 IP 주소 검증
<?php
$ip = "35.2.1";
if (filter_var($ip, FILTER_VALIDATE_IP)) {
echo("유효한 IP 주소입니다!");
} else {
echo("잘못된 IP 주소입니다!");
}
?>
위 코드의 실행 결과는 다음과 같습니다. "35.2.1"은 옥텟이 세 개뿐이라 올바른 IPv4 형식이 아니므로 검증에 실패합니다.
잘못된 IP 주소입니다!
예제 2: 올바른 IP 주소 검증
<?php
$ip = "127.0.0.1";
if (filter_var($ip, FILTER_VALIDATE_IP)) {
echo("유효한 IP 주소입니다!");
} else {
echo("잘못된 IP 주소입니다!");
}
?>
"127.0.0.1"은 표준적인 IPv4 루프백 주소이므로 검증을 통과합니다.
유효한 IP 주소입니다!
정리
FILTER_VALIDATE_IP는 폼 입력 검증, 로그 분석, 접속자 IP 확인 등 다양한 상황에서 유용하게 쓰이는 PHP 필터 상수입니다. 플래그를 조합하면 IPv4 또는 IPv6만 허용하거나, 사설·예약 대역을 제외하는 등 요구 사항에 맞는 정교한 검증이 가능하니 프로젝트에 적극적으로 활용해 보세요.