현재 위치: > 최신 기사 목록> PHP에서 실제 IP 주소를 얻기위한 실용적인 방법 및 코드 예제

PHP에서 실제 IP 주소를 얻기위한 실용적인 방법 및 코드 예제

gitbox 2025-08-10

머리말

PHP 개발 중에 방문자의 실제 IP 주소를 얻는 것이 일반적인 요구 사항입니다. 그러나 복잡한 네트워크 환경으로 인해 IP 주소의 획득은 종종 프록시 서버 및로드 밸런싱과 같은 요소의 영향을받습니다. 이 기사는 실제 IP를 얻고 코드 예제를 사용하여 개발자가 클라이언트 IP를 올바르게 얻을 수 있도록 다양한 방법을 탐색합니다.

HTTP 헤더 정보를 얻으십시오

HTTP 요청 헤더에는 클라이언트의 IP 정보가 포함되어 있으며 가장 기본적인 변수는 Remote_addr 이며 클라이언트의 IP를 기록하는 데 사용됩니다.

Remote_addr의 가치를 얻으십시오

 $ip = $_SERVER['REMOTE_ADDR'];
echo "IP Address: $ip";

이 코드는 현재 방문자의 IP 주소를 직접 출력 할 수 있지만 Remote_addr 의 값은 실제 클라이언트 IP가 아닌 프록시 서버 또는로드 밸런서의 IP 일 수 있습니다.

헤더 정보를 얻으십시오

프록시로 인한 문제를 해결하기 위해 많은 프록시 서버는 HTTP 헤더에 x-forwarded-for를 추가하여 실제 클라이언트 IP를 기록합니다.

 $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
echo "IP Address: $ip";

그러나 모든 에이전트 가이 헤더를 통과하는 것은 아니며 위조 될 수 있으므로 완전히 의존 할 수는 없습니다.

프록시 라이브러리를 사용하여 정확도를 향상시킵니다

복잡한 환경의 경우 전용 PHP 프록시 클래스 라이브러리를 사용하는 것은 IP 획득 정확도를 향상시키는 효과적인 방법입니다. 이 클래스 라이브러리는 다양한 HTTP 헤더 정보를 종합적으로 분석합니다.

CloudFlare를 사용하여 실제 IP 주소를 얻으십시오

웹 사이트가 CloudFlare 프록시에 배치 된 경우 해당 클래스 라이브러리를 사용하여 실제 IP를 정확하게 얻을 수 있습니다.

 require_once 'vendor/autoload.php';
use Cloudflare\IpRewrite;
$ipRewrite = new IpRewrite();
$ip = $ipRewrite->getIp();
echo "IP Address: $ip";

이 라이브러리는 CloudFlare의 특수 헤더 정보를 구문 분석하여 실제 클라이언트 IP 주소가 얻어 지도록합니다.

다른 프록시 라이브러리를 사용하여 실제 IP를 얻으십시오

CloudFlare 외에도 JSHRINK/Proxy-TEST와 같은 다른 오픈 소스 프록시 라이브러리가있어 다양한 HTTP 헤더를 분석하고 IP를 정확하게 얻을 수 있습니다.

 require_once 'vendor/autoload.php';
use JShrink\ProxyTest;
$proxyTest = new ProxyTest();
$ip = $proxyTest->getIp();
echo "IP Address: $ip";

요약

방문자의 실제 IP를 얻는 것은 PHP 개발의 일반적인 요구 사항입니다. remote_addr을 직접 읽는 것은 간단하지만 프록시 환경에서는 충분히 정확하지 않습니다. x-forwarded 헤더를 사용하거나 전문 에이전트 라이브러리를 사용하면 정확도를 효과적으로 향상시킬 수 있습니다. IP 주소를 사용할 때는 사용자 개인 정보 보호에주의를 기울이고이 정보를 합리적으로 합법적으로 사용해야합니다.