php获取客户端ip

php获取客户端ip
/**
* 获取客户端ip
* @return string
*/
public static function get_ip(){
static $realip = NULL;
if ($realip !== NULL) return $realip;
if (isset($_SERVER)) {
if(isset($_SERVER['HTTP_X_REAL_IP']) && $_SERVER['HTTP_X_REAL_IP']){
$realip = $_SERVER['HTTP_X_REAL_IP'];
}elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
foreach ($arr AS $ip) {
$ip = trim($ip);
if ($ip != 'unknown') {
$realip = $ip;
break;
}
}
} elseif (isset($_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP']) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '0.0.0.0';
}
} else {
if (getenv('HTTP_X_REAL_IP')){
$realip = getenv('HTTP_X_REAL_IP');
}elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$realip = getenv('HTTP_X_FORWARDED_FOR');
} elseif (getenv('HTTP_CLIENT_IP')) {
$realip = getenv('HTTP_CLIENT_IP');
} else {
$realip = getenv('REMOTE_ADDR');
}
}
$onlineip = array();
preg_match("/[\\d\\.]{7,15}/", $realip, $onlineip);
return !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
}

0 个评论

要回复文章请先登录注册