WordPress无法正确记录访客评论IP解决方法

Timle.CN:专注 WordPress建站WordPress主题WordPress插件 分享,同时也关注各种 建站资源前端技巧免费资源IT互联网热点 。CTRL+D即可收藏本站,我们期待您的再次光临!

[文章目录]

在使用了WP Super Cache的朋友可能会发现,自己的评论管理里面的所有IP都变成一样的,就像Timle.CN的评论ip全部变成了61.139.126.228,折腾了几天,才发现,原来是缓存插件引起的,如果有遇到同样情况的朋友可以看下下面的解决办法:

第一种方法

在wp-config.php开头加入以下代码:(把wp-config.php中的代码全部看了遍,并无关于获取IP地址的其他代码,所以我加在了最后,实际效果和在开头一样)

/* 获取评论的真实IP */
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];}

第二种方法

打开wp-includes/comment.php,找到wp_new_comment函数,这个函数是将一个新评论入库。

把其中

$commentdata['comment_author_IP'] = preg_replace( '/[^0-9a-fA-F:., ]/', ",$_SERVER['REMOTE_ADDR'] );

修改为

$commentdata['comment_author_IP'] = preg_replace( '/[^0-9a-fA-F:., ]/', ",$_SERVER['HTTP_X_FORWARDED_FOR'] );

另外将

$_SERVER['REMOTE_ADDR']

替换为

$_SERVER["HTTP_X_FORWARDED_FOR"]

这样就OK了

做下注解:

  • $_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址。
  • $_SERVER["HTTP_X_FORWARDED_FOR"] #透过代理服务器取得客户端的真实 IP 地址

上面是用方法一被评论后收到的邮件——评论者IP和其主机名一致;下面是用方法二后得到的——评论者IP有两个而且其主机名没有获取到。

从上得出的结论就是:

强烈建议使用第一种方法——简洁、方便、完美!

如果此方法没有解决你的问题,那你可能需要看看这个:

WordPress使用云盾后正确获取评论真实IP的方法   点击前往

版权声明:本站所有文章和资源使用CC BY-NC-SA 3.0 CN协议发布,转载应当以相同方式注明并注明文章来自“Timle.CN -> WordPress无法正确记录访客评论IP解决方法”。在页面右边可以分享本文哦!

快来吐槽一下吧!

疑问 难过 胜利 微笑 抠鼻 可爱 抓狂 偷笑 奋斗 衰 撇嘴 色 贼笑 爬虫 鼓掌 发怒 擦汗 握手 酷 玫瑰 哭 呲牙

WordPress无法正确记录访客评论IP解决方法
2 票, 5.00 平均等级 ( 98% 分 )