让wordpress正确记录访客IP地址

林继 WordPress 4,545 共写了387个字 (2010-08-20 17:36:18) 没有评论 打印 扫描二维码 百度已收录

这两天blog恢复,兴奋之余,发现,访客的留言ip都是proxy的地址,而不是真实的ip地址,于是打印了一下$_SERVER信息,看到$_SERVER[‘REMOTE_ADDR’]本应该是访客ip的,结果却变成了proxy的地址,这个不是我们需要,同时发现在$_SERVER中包含了HTTP_X_FORWARDED_FOR字段,而且wordpress使用的是REMOTE_ADDR字段值,那就好办了,使用如下代码,就可以将真是的访客地址拿到

  1. if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
  2. {
  3. $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
  4. $_SERVER['REMOTE_ADDR'] = $list[0];
  5. }

把上面这段代码加入到wp-config.php的开头部分就可以了
因为X-Forwarded-For头的记录格式是:client1,proxy1,proxy2,所以在上面的代码中我们取的是第一个值。
参考:http://www.onono.org/2009/07/181.htm

历史上的今天

8月
20

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

< >