| |
现在很多朋友上网都用代理,特别是教育网的用户要上外网的时候,那是非代理不能上也。用代理给用户带来了方便,却给网站的统计带来了麻烦。今日发现一个特别有用的变量,那就是$_sever[http_x_forwarded_for]这个变量就可以透过代理获得用户的真实ip地址。
  
   但是同时我们又遇到了一个问题,并不是所有的人都在用着代理服务器上网,所以我们必须要再做一次判断,否则碰到没用代理的用户你的ip值就是空了!
  

   下面写一个简单的函数,用它一般来说可以获得用户的真是ip地址

  function get_userip()
{
   if($_SERVER[HTTP_X_FORWARDED_FOR]=='')
      
         {
        
                if($_SERVER[HTTP_REMOTE_ADDR]=='')

                   {    $userip=$_SERVER[HTTP_CLIENT_IP];  }

                 else

              { $userip=$_SERVER[HTTP_REMOTE_ADDR];}

          }

  else

     {$userip=$_SERVER[HTTP_X_FORWARDED_FOR];}

  return $userip;

}

当然了,这个函数可以很简单的几行就完成的,不过我为了记忆深刻,所以就写的罗嗦了点。谁还不懂,可以来请教我啊!





by admin | 来自 本站原创 | 阴 2006-11-16 20:47 | 分类: PHP | 评论(2) | 引用(1146) | 阅读(4459)
疯子
2007-12-19 10:03
不过上面的效率就不用说了!呵呵!
admin 回复于 2007-12-19 10:12
代码看起来少了,不过看起来更绕眼了,呵呵
疯子
2007-12-19 10:02
简单的几行??呵呵
这样?
function get_userip()
{
   return ($_sever[http_x_forwarded_for]=='')?(($_sever[http_remote_addr]=='')?$_sever[http_client_ip]:$_sever[http_remote_addr]):$_sever[http_x_forwarded_for];
}
分页: 1/115 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]