HTTP_X_FORWARDED_FOR 및 REMOTE_ADDR PHP 사용

WBOY
풀어 주다: 2016-08-08 09:21:52
원래의
1197명이 탐색했습니다.

원본 URL: http://qq398705749.iteye.com/blog/963818

PHP에서 HTTP_X_FORWARDED_FOR 및 REMOTE_ADDR 사용
1. REMOTE_ADDR을 찾아보세요. current 페이지에 있는 사용자 컴퓨터의 IP 주소
2.HTTP_X_FORWARDED_FOR: 현재 페이지를 탐색하는 사용자 컴퓨터의 게이트웨이
3.HTTP_CLIENT_IP: 클라이언트의 IP (이 속성은 의사 속성으로 확인되었으며 실제로 존재하지 않습니다. 허위로 표시하지 마십시오)
PHP에서 $_SERVER["REMOTE_ADDR"]를 사용하여 클라이언트의 IP 주소이지만 클라이언트가 프록시 서버를 사용하여 액세스하는 경우 얻는 것은 실제 클라이언트 IP 주소가 아닌 프록시 서버의 IP 주소입니다. 프록시 서버를 통해 클라이언트의 실제 IP 주소를 얻으려면 $_SERVER["HTTP_X_FORWARDED_FOR"]를 사용하십시오. 읽기 위해.
그러나 주의할 점은 모든 프록시 서버가 $_SERVER["HTTP_X_FORWARDED_FOR"]를 사용하여 클라이언트의 실제 IP를 읽을 수 있는 것은 아니라는 것입니다. 이 방법으로 읽은 것 중 일부는 여전히 프록시입니다. 서버의 IP입니다.
또 한 가지 주의할 점은 클라이언트가 프록시 서버를 통해 접속하지 않으면 $_SERVER["HTTP_X_FORWARDED_FOR"]로 얻은 값이 비어 있다는 점입니다.
if ($_SERVER['HTTP_X_FORWARDED_FOR'] && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3} $/',$_SERVER['HTTP_X_FORWARDED_FOR'])) {
$onlineip = $_SERVER['HTTP_X_FORWARDED_FOR']
} elseif ($_SERVER[' HTTP_CLIENT_IP'] && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/',$_SERVER['HTTP_CLIENT_IP'])) {
$onlineip = $_SERVER['HTTP_CLIENT_IP'];
}
사용자 IP 주소의 세 가지 속성 간의 차이를 가져옵니다. (HTTP_X_FORWARDED_FOR ,HTTP_VIA,REMOTE_ADDR)
1. 프록시 서버를 사용하지 않는 경우:
REMOTE_ADDR = 사용자 IP
HTTP_VIA = no 값이 표시되지 않거나 표시되지 않음
HTTP_X_FORWARDED_FOR = 값이 없거나 표시되지 않음
2. 투명 프록시 서버를 사용하는 경우: 투명 프록시
REMOTE_ADDR = 마지막 프록시 서버 IP
HTTP_VIA = 프록시 서버 IP
HTTP_X_FORWARDED_FOR = 여러 프록시 서버를 통과할 때 이 값은 다음과 유사합니다. 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와 유사합니다.
프록시 서버를 사용하여 객체에 직접 액세스하는 것처럼 모든 정보를 프록시 서버의 정보로 완전히 대체합니다.

위 내용은 관련 내용을 포함하여 PHP에서의 HTTP_X_FORWARDED_FOR 및 REMOTE_ADDR 사용법을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!