获取IP


function getIp( )
{
                if ( $_SERVER['HTTP_CLIENT_IP'] && $_SERVER['HTTP_CLIENT_IP'] != "unknown" )
                {
                                $ip = $_SERVER['HTTP_CLIENT_IP'];
                                return $ip;
                }
                if ( $_SERVER['HTTP_X_FORWARDED_FOR'] && $_SERVER['HTTP_X_FORWARDED_FOR'] != "unknown" )
                {
                                $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
                                return $ip;
                }
                $ip = $_SERVER['REMOTE_ADDR'];
                return $ip;
}


function ip(){

    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 = false;

  return($ip);

}

REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。
HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。
$_SERVER['REMOTE_ADDR']; //访问端(有可能是用户,有可能是代理的)IP
$_SERVER['HTTP_CLIENT_IP'];   //代理端的(有可能存在,可伪造)
$_SERVER['HTTP_X_FORWARDED_FOR']; //用户是在哪个IP使用的代理(有可能存在,也可以伪造)

posted @ 2017-07-10 10:21  Newman·Li  阅读(118)  评论(0编辑  收藏  举报