이 글에서는 PHP가 실제 클라이언트의 실제 IP(REMOTE_ADDR, HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR)를 얻는 방법을 주로 소개하는데, 이는 좋은 참고값을 가지고 있습니다. 아래 편집기를 사용하여 살펴보겠습니다
REMOTE_ADDR은 클라이언트가 서버와 "핸드셰이크"할 때의 IP입니다. "익명 프록시"가 사용되는 경우 REMOTE_ADDR은 프록시 서버의 IP를 표시합니다.
HTTP_CLIENT_IP는 프록시 서버가 보낸 HTTP 헤더입니다. "수퍼 익명 프록시"인 경우 없음 값이 반환됩니다. 마찬가지로 REMOTE_ADDR은 이 프록시 서버의 IP로 대체됩니다.
$_SERVER['REMOTE_ADDR']; //액세스 끝(사용자일 수도 있고 프록시일 수도 있음) IP
$_SERVER['HTTP_CLIENT_IP'] //프록시 끝(프록시일 수도 있음) ) 존재하며 위조 가능)
$_SERVER['HTTP_X_FORWARDED_FOR'] //사용자가 프록시로 사용하고 있는 IP(존재할 수도 있고 위조 가능)
세 가지 값은 다음과 같습니다.
1. 프록시 서버를 사용하지 않는 경우:
REMOTE_ADDR = 귀하의 IP
HTTP_VIA = 값이 없거나 표시되지 않음
HTTP_X_FORWARDED_FOR = 값이 없거나 표시되지 않음
2. 투명 프록시 서버 사용 상황: 투명 프록시
REMOTE_ADDR = 마지막 프록시 서버 IP
HTTP_VIA = 프록시 서버 IP
HTTP_X_FORWARDED_FOR = 실제 IP, 여러 프록시 서버를 통과할 때 이 값은 다음과 유사합니다. 203.98.182.163, 203.98.182.163, 203.129.72.215.
이 유형의 프록시 서버는 여전히 귀하의 정보를 방문자에게 전달하므로 귀하의 실제 신원을 숨기려는 목적을 달성할 수 없습니다.
3. 일반 익명 프록시 서버를 사용하는 경우: 익명 프록시
REMOTE_ADDR = 마지막 프록시 서버 IP
HTTP_VIA = 프록시 서버 IP
HTTP_X_FORWARDED_FOR = 프록시 서버 IP를 여러 개 통과할 때 이 값은 다음과 유사합니다. 다음: 203.98.182.163, 203.98.182.163, 203.129.72.215.
실제 IP를 숨기되 방문자에게 액세스하기 위해 프록시 서버를 사용하고 있다는 사실을 공개하세요.
4. 거짓 프록시 서버 사용: 프록시 왜곡
REMOTE_ADDR = 프록시 서버 IP
HTTP_VIA = 프록시 서버 IP
HTTP_X_FORWARDED_FOR = 임의 IP를 통과할 때 이 값은 다음과 유사합니다. : 203.98.182.163, 203.98.182.163, 203.129.72.215.
방문하는 사람에게 프록시 서버를 사용하고 있다고 알리고 실제 IP 대신 가짜 임의 IP를 만들어 스푸핑하세요.
5. 익명성이 높은 프록시 서버를 사용하는 경우: 높은 익명성 프록시(엘리트 프록시)
REMOTE_ADDR = 프록시 서버 IP
HTTP_VIA = 값 없음 또는 표시 없음
HTTP_X_FORWARDED_FOR = 여러 번 수행한 후 값 없음 또는 표시 없음 프록시 서버로 작동하는 경우 이 값은 203.98.182.163, 203.98.182.163, 203.129.72.215와 유사합니다.
프록시 서버를 사용하여 개체에 직접 액세스하는 것처럼 모든 정보를 프록시 서버의 정보로 완전히 대체합니다.
//获取用户IP $ip = ''; foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_FROM', 'REMOTE_ADDR') as $v) { if (isset($_SERVER[$v])) { if (! preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $_SERVER[$v])) { continue; } $ip = $_SERVER[$v]; } } uset($ip,$v);
위 내용은 이 글의 전체 내용이며, 모든 분들의 공부에 도움이 되길 바랍니다.
관련 권장 사항:
PHP 프로그래밍을 기반으로client 및 서버 통신 기능을 구현합니다. TCP 자세한 설명 서버 및 client
의 기능 단계
위 내용은 실제 클라이언트의 실제 IP를 얻기 위한 PHP 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!