wordpress显示访客评论IP地址程序

在很多的网站我们会看到显示客户IP地址了并来自哪里,下面我们一起来看看怎么在wordpress显示访客评论IP地址吧.

这两天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,所以在上面的代码中我们取的是第一个值,但朋友会发现上面只是显示了IP地址并未显示来源哪里,如 您来自湖南长沙,这种我可以有多种方法,现在主要是直接调用api.

根据IP地址获取所在城市(新浪API)相关代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>新浪API_湛蓝天空</title>
  6. <script src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js" type="text/ecmascript"></script>
  7. <script type="text/javascript">
  8. alert("您当前所在地:"+remote_ip_info["country"]+ ' '+remote_ip_info["province"] + "省" + ' ' + remote_ip_info["city"] + "市"+" "+ remote_ip_info["isp"]);
  9. </script>
  10. </head>
  11. <body>
  12. </body>
  13. </html>

这个就更简单了就连php都不用了而是直接调用新浪的api了.