注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

phperwuhan的博客

记载一个phper的历程!phperwuhan.blog.163.com

 
 
 

日志

 
 

使用CDN加速后对PHP获取IP的影响  

2010-08-18 17:35:48|  分类: CDN |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

来源:http://yanglu.org/discuz_real_ip_cdn/

一直都是使用DISCUZ的获取客户端IP的函数,但今日发现网站使用CDN加速后,网站统计出了问题,获取到的IP有部分是CDN节点的IP,而程序统计是以唯一IP判断,导致统计到的IP比实际IP少很多。改动获取IP的函数后恢复正常。
原获取IP的方法:

if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {  $onlineip = getenv('HTTP_CLIENT_IP');  } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {  $onlineip = getenv('HTTP_X_FORWARDED_FOR');  } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {  $onlineip = getenv('REMOTE_ADDR');  } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {  $onlineip = $_SERVER['REMOTE_ADDR'];  }     preg_match("/[\d\.]{7,15}/", $onlineip, $onlineipmatches);  $onlineip = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';  unset($onlineipmatches);


改成如下:

function get_real_ip()  {         $ip=false;         if(!empty($_SERVER["HTTP_CLIENT_IP"]))         {              $ip = $_SERVER["HTTP_CLIENT_IP"];         }         if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))         {              $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);              if ($ip)              {                       array_unshift($ips, $ip); $ip = FALSE;              }              for ($i = 0; $i < count($ips); $i++)              {                       if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i]))                       {                                 $ip = $ips[$i];                                 break;                       }              }         }         return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);  }  $onlineip = get_real_ip();
  评论这张
 
阅读(1303)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017