>  기사  >  백엔드 개발  >  PHP에서 클라이언트의 실제 IP 주소를 얻는 다양한 방법 요약

PHP에서 클라이언트의 실제 IP 주소를 얻는 다양한 방법 요약

高洛峰
高洛峰원래의
2017-01-21 13:07:251604검색

복잡한 판단과 계산 끝에 IP 주소 획득 기능

function getIP() { 
if (getenv('HTTP_CLIENT_IP')) { 
$ip = getenv('HTTP_CLIENT_IP'); 
} 
elseif (getenv('HTTP_X_FORWARDED_FOR')) { 
$ip = getenv('HTTP_X_FORWARDED_FOR'); 
} 
elseif (getenv('HTTP_X_FORWARDED')) { 
$ip = getenv('HTTP_X_FORWARDED'); 
} 
elseif (getenv('HTTP_FORWARDED_FOR')) { 
$ip = getenv('HTTP_FORWARDED_FOR'); 

} 
elseif (getenv('HTTP_FORWARDED')) { 
$ip = getenv('HTTP_FORWARDED'); 
} 
else { 
$ip = $_SERVER['REMOTE_ADDR']; 
} 
return $ip; 
}

IP 주소 코드를 한 문장으로 획득하는 가장 간단한 예

$reIP=$_SERVER["REMOTE_ADDR"]; 
echo $reIP;

PHP에서 IP 획득 알고리즘

if(getenv('HTTP_CLIENT_IP')) { 
$onlineip = getenv('HTTP_CLIENT_IP'); 
} elseif(getenv('HTTP_X_FORWARDED_FOR')) { 
$onlineip = getenv('HTTP_X_FORWARDED_FOR'); 
} elseif(getenv('REMOTE_ADDR')) { 
$onlineip = getenv('REMOTE_ADDR'); 
} else { 
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR']; 
} 
echo $onlineip;

는 내부 웹사이트와 외부 웹사이트에서 IP 주소를 얻는 절차로 나눌 수 있습니다.

function getip_out(){ 
$ip=false; 
if(!empty($_SERVER["HTTP_CLIENT_IP"])){ 
$ip = $_SERVER["HTTP_CLIENT_IP"]; 
} 
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
$ips教程 = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']); 
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; } 
for ($i = 0; $i < count($ips); $i++) { 
if (!eregi ("^(10│172.16│192.168).", $ips[$i])) { 
$ip = $ips[$i]; 
break; 
} 
} 
} 
return ($ip ? $ip : $_SERVER[&#39;REMOTE_ADDR&#39;]); 
} 
echo getip_out();

PHP에서 IP 주소를 얻는 데 사용되는 알고리즘은 무엇인가요?

$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; 
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];

클라이언트의 실제 IP 주소를 얻기 위한 다양한 방법에 대한 자세한 PHP 요약을 보려면 PHP 중국어 웹사이트의 관련 기사에 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.