현재 위치: > 최신 기사 목록> get_client_version 및 filter_var ()를 사용하여 IP 적법성을 결정하십시오

get_client_version 및 filter_var ()를 사용하여 IP 적법성을 결정하십시오

gitbox 2025-05-10

PHP 개발에서는 종종 사용자가 제공 한 IP 주소가 합법적인지 확인해야합니다. 많은 시나리오에서 특히 클라이언트 연결 또는 API 요청을 처리 할 때 IP 확인이 중요한 기능입니다. 이 기사는 get_client_version () 함수와 PHP의 내장 필터 _var () 함수를 사용하여 IP 주소가 합법적인지 여부를 결정하는 방법을 설명합니다.

1. 클라이언트 IP 주소를 얻습니다

먼저 클라이언트의 IP 주소를 가져와야합니다. 일반적으로 클라이언트 IP는 $ _server hyperglobal 어레이에서 ramce_addr 에 의해 얻을 수 있지만, 경우에 따라 프록시 서버 또는로드 밸런서 사용과 같은 경우, 원격 _addr는 클라이언트의 실제 IP 주소 대신 프록시 서버의 IP 주소를 반환 할 수 있습니다. 클라이언트의 실제 IP 주소를 올바르게 얻을 수 있도록 다음 코드를 사용할 수 있습니다.

 function get_client_ip() {
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        return $_SERVER['HTTP_CLIENT_IP'];
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        return $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else {
        return $_SERVER['REMOTE_ADDR'];
    }
}

get_client_ip () 함수는 http 헤더 필드 http_client_iphttp_x_forwarded_for 의 우선 순위를 지정합니다. 이는 종종 클라이언트의 실제 IP 주소를 식별하는 데 사용됩니다. 이 두 필드에 값이 없으면 Remote_addr이 반환됩니다. 즉, 기본 클라이언트 IP.

2. Filter_var ()를 사용하여 IP 주소를 확인하십시오

다음으로 PHP의 Filter_var () 함수를 사용하여 얻은 IP 주소가 합법적인지 확인합니다. Filter_var ()는 통과 된 검증 유형에 따라 값을 확인할 수있는 매우 강력한 기능입니다. IP 주소 확인을 위해 Filter_Validate_IP 옵션을 사용할 수 있습니다.

 $ip = get_client_ip();  // 클라이언트를 얻으십시오IP주소
if (filter_var($ip, FILTER_VALIDATE_IP)) {
    echo "IP주소合法:$ip";
} else {
    echo "IP주소不合法:$ip";
}

이 예에서 Filter_var ()는 들어오는 $ IP가 유효한 IP 주소인지 확인합니다. IP 주소가 합법적 인 경우 true를 반환하십시오. 그렇지 않으면 False를 반환하십시오.

IPv4 및 IPv6을 지원합니다

Filter_Validate_ip은 IPv4 및 IPv6 주소를 확인합니다. IPv4 또는 IPv6 주소를 확인 해야하는 경우 플래그를 지정하여 유형을 제한 할 수 있습니다.

 // 확인하다IPv4주소
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
    echo "IPv4주소合法:$ip";
} else {
    echo "IPv4주소不合法:$ip";
}

// 확인하다IPv6주소
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
    echo "IPv6주소合法:$ip";
} else {
    echo "IPv6주소不合法:$ip";
}

filter_flag_ipv4 또는 filter_flag_ipv6 플래그를 사용하면 각각 IPv4 또는 IPv6 유형의 주소 만 확인할 수 있습니다.

3. 포괄적 인 예 : IP 주소가 합법적이고 다른 상황을 처리하는지 결정

마지막으로, get_client_ip () 함수와 filter_var () 함수를 결합하여 클라이언트 IP 주소가 합법적인지 여부를 결정하고 그에 따라 처리 할 수있는 완전한 예제를 작성할 수 있습니다.

 // 클라이언트를 얻으십시오IP주소
$ip = get_client_ip();

// 확인하다IP주소是否合法
if (filter_var($ip, FILTER_VALIDATE_IP)) {
    echo "IP주소合法:$ip";
} elseif (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
    echo "IPv4주소合法:$ip";
} elseif (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
    echo "IPv6주소合法:$ip";
} else {
    echo "IP주소不合法:$ip";
}

이 예에서는 먼저 일반 IP 주소가 일반 IP가 아닌 경우 일반 IP 주소를 확인한 다음 합법적 인 IPv4 또는 IPv6 주소인지 확인하십시오. 그들 중 누구도 기준을 충족하지 않으면 출력은 "IP 주소는 불법입니다"입니다.

이 기사가 get_client_version ()Filter_var ()를 사용하여 IP 주소가 합법적인지 확인하는 방법을 이해하는 데 도움이되기를 바랍니다. PHP 개발에 대해 더 많은 질문이 있으시면 언제든지 질문하십시오!