웹 사이트 에서 사용자 IP 를 가 져 오 는 보안 방법 HTTPX_FORWARDED_FOR 검사
function getIP() {
$realip = ''; //
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = $_SERVER['REMOTE_ADDR'];
}
preg_match('/^((?:\d{1,3}\.){3}\d{1,3})/',$realip,$match);
return $match?$match[0]:false;
}
상기 함 수 는 IP 판단 을 추가 하여 Ip 형식 데이터 로 시작 하고 첫 번 째 로 IP 형식 값 을 만족 시 킵 니 다.false 로 돌아 가지 않 았 다 면.이렇게 하면 형식 을 만족 시 키 는 IP 를 읽 고 데이터 의 IP 형식 을 검증 할 수 있다.만약 내 가 인터넷 의 IP 를 읽 고 사용자 가 랜 에 들 어 온 IP 를 직접 걸 러 내야 한다.
저 희 는 일부 사이트 에서 불법 IP 주 소 를 자주 볼 수 있 습 니 다.사실은 일 부 는 IP 주소 형식 이 잘못 되 었 고 일 부 는 IP 주 소 를 읽 어서 인터넷 에서 IP 형식 을 허용 하지 않 을 수도 있 습 니 다.아래 의 이 함 수 는 IANA 사이트 규범 을 통 해 함 수 를 봉 인 했 습 니 다.IP 주 소 를 입력 하면 이 IP 가 인터넷 에서 응용 할 수 있 는 지 정확하게 알 수 있다.
// IP
function ipType2($ip) {
$iplist = explode(".", $ip);
if ($iplist[0] >= 224 && $iplist[0] <= 239)
return ' ';
if ($iplist[0] >= 240 && $iplist[0] <= 255)
return ' ';
if (preg_match('/^198\.51\.100/', $ip))
return 'TEST-NET-2, ';
if (preg_match('/^203\.0\.113/', $ip))
return 'TEST-NET-3, ';
if (preg_match('/^192\.(18|19)\./', $ip))
return ' ';
if (preg_match('/^192\.168/', $ip))
return ' [ ]';
if (preg_match('/^192\.88\.99/', $ip))
return 'ipv6to4 ';
if (preg_match('/^192\.0\.2\./', $ip))
return 'TEST-NET-1, ';
if (preg_match('/^192\.0\.0\./', $ip))
return ' (IANA)';
if (preg_match('/^192\.0\.0\./', $ip))
return ' (IANA)';
if ($iplist[0] == 172 && $iplist[1] <= 31 && $iplist[1] >= 16)
return ' [ ]';
if ($iplist[0] == 169 && $iplist[1] == 254)
return ' ';
if ($iplist[0] == 127)
return ' ';
if ($iplist[0] == 10)
return ' [ ]';
if ($iplist[0] == 0)
return ' ( )';
return 'InterNet ';
}
IP 주 소 를 입력 하면'InterNet 네트워크 주소'로 되 돌아 갑 니 다.그러면 이 IP 주 소 는 형식 이 정확 할 뿐만 아니 라 인터넷 에서 합 법 적 인 IP 주소 입 니 다.이 함 수 는 매우 복잡 하 다.사실은 많은 비 인터넷 사용 IP 주 소 를 배제 하 는 것 이다.우리 가 흔히 볼 수 있 는 192,127,10 의 시작 주 소 는 모두 익숙 해 졌 을 것 이다.그러나 실제로 많은 IP 주 소 는 보존 되 어 있 거나 사용 되 고 있다.인터넷 IP 로 사용 할 수 없습니다.상기 두 가지 함수 가 있 으 면 우 리 는 정확 한 형식의 IP 주 소 를 읽 을 수 있 을 뿐만 아니 라 인터넷 위의 IP 주소 도 읽 을 수 있 습 니 다.이상 은 업무 중 에 자주 사용 하 는 함수 입 니 다.여러분 의 교 류 를 환영 합 니 다!저자:chengmo QQ:8292669
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HTTP 사용X_FORWARDED_FOR 클 라 이언 트 IP 획득 의 심각 한 결과WEB 개발 에서 우 리 는 클 라 이언 트 의 IP 주 소 를 얻 기 위해 아래 코드 를 사용 하 는 것 에 익숙 할 것 입 니 다.C\#코드...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.