图片 2

PHP下服务器做了反向代理要拿到用户的真实IP方法

率先种改特出nginx恐怕Apache配置

图片 1图片 2

第二种

HTTP_X_FORWARDED

/**
* 得到IP
* @return string
*/
public 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'];
}
$this->ipPortToIp($ip);//得到IP
return $ip;
}
/**
* ip+port转成IP
* @param type $ip
* @return type
*/
public function ipPortToIp(&$ip) {
$array = explode(':', $ip);
if (count($array) > 1) {
$ip = $array[0];
}
return $ip;
}

作品由爱资料原创本文地址:

发表评论

电子邮件地址不会被公开。 必填项已用*标注