function getip()
{
if(getenv('HTTP_CLIENT_IP')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
list($onlineip) = explode(',', getenv('HTTP_X_FORWARDED_FOR'));
} elseif(getenv('REMOTE_ADDR')) {
$onlineip = getenv('REMOTE_ADDR');
} else {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
return $onlineip;
}

解决方案 »

  1.   

    有时候用户通过代理服务器上网的,要获得用户真实IP必须这样:if ($_SERVER["HTTP_X_FORWARDED_FOR"]=="")
       $user_ip=$_SERVER["REMOTE_ADDR"];
    else
       $user_ip=$_SERVER["HTTP_X_FORWARDED_FOR"];
      

  2.   


    function GetIP() { //获取IP 
        if ($_SERVER["HTTP_X_FORWARDED_FOR"]) 
            $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; 
        else if ($_SERVER["HTTP_CLIENT_IP"]) 
            $ip = $_SERVER["HTTP_CLIENT_IP"]; 
        else if ($_SERVER["REMOTE_ADDR"]) 
            $ip = $_SERVER["REMOTE_ADDR"]; 
        else if (getenv("HTTP_X_FORWARDED_FOR")) 
            $ip = getenv("HTTP_X_FORWARDED_FOR"); 
        else if (getenv("HTTP_CLIENT_IP")) 
            $ip = getenv("HTTP_CLIENT_IP"); 
        else if (getenv("REMOTE_ADDR"))  
            $ip = getenv("REMOTE_ADDR"); 
        else 
            $ip = "Unknown"; 
        return $ip;