一般而言,我们的获取用户真实ip的代码大致是这样...
/**
* 获取 远程访问者的IP地址
*
* @return string
*/
function real_ip_addr()
{
static $remote_ip_address = null;
if (!$remote_ip_address){
$vars = array(
val($_SERVER,'HTTP_CLIENT_IP'),
val($_SERVER,'HTTP_X_FORWARDED_FOR'),
val($_SERVER,'REMOTE_ADDR'),
);
foreach ($vars as $var){
if (!empty($var)) {
$remote_ip_address = $var;
}
continue;
}
if (empty($remote_ip_address)) $remote_ip_address = 'unknown';
}
return $remote_ip_address;
}
涉及到“客户端”IP的通常使用3个环境变量:$_SERVER['HTTP_CLIENT_IP'] 和$_SERVER['X_FORWARDED_FOR']还有$_SERVER['REMOTE_ADDR']实际上,这3个环境变量都有局限性。前两 个是可以随意伪造。只要在发送的http头里设置相应值就可以,任意字符都可以,而第3个环境变量,如果用户使用了匿名代理,那这个变量显示的就是代理 IP
伪造下:
:-)...
:-) 一个小思路