php教程

PHP获取用户真实IP方法

精准像素 2020-09-27 人阅读

精准像素分享自用两种获取用户IP方法,复制就可以使用,方便新手小白。

PHP获取IP地址

if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip= getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip= getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip= getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip= $_SERVER['REMOTE_ADDR'];
}

这种方法是网络上非常常见的获取IP方法,但是每个页面都要写一次,下面分享一个PHP获取用户IP的函数,可以重复调用。

PHP获取IP函数方法

function  GetIP(){  
if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown")){
$ip = getenv("HTTP_CLIENT_IP");
}else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"),"unknown")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"),"unknown")){
$ip = getenv("REMOTE_ADDR");
}else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'],"unknown")){
$ip = $_SERVER['REMOTE_ADDR'];
}else{
$ip  =  "unknown" ;  
}
return $ip;  
}  
$ipe  = GetIP();  
echo   $ipe ;

function内的代码可以放在一个公共PHP文件内,在需要的地址用GetIP()方法就可以直接调用了,可以重复多次调用。