WordPress开启CDN之后提取IP错误解决教程

5,282次阅读
28条评论

WordPress开启CDN之后提取IP错误解决教程

前言

用过CDN的朋友都知道,如果WordPress开启CDN之后别人在你的文章中评论,IP则显示的是该人所在地区的CDN节点的IP,而不会显示该人的真实IP,这样的话其实不会有很大的问题,不过对于垃圾评论过多的网站来说,这无疑是一个噩梦,因为不可以进行IP拦截。

解决办法(一)

本人之前在网上找了很多的方法,之后在网上找到了如下的解决办法,把改代码加入到wp-config.php的<?php之后,之前一直都不适用,后来经过反复调试发现是参数调取错误。 源代码如下

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}

我们要把里面的

HTTP_X_FORWARDED_FOR

更改成为自己所用的CDN的来源IP端口,例如又拍云的就为

HTTP_X_REAL_IP

所有我们调用又拍云的来源IP的时候在wp-config.php中就应该这样写:

if(isset($_SERVER['HTTP_X_REAL_IP'])) {
$list = explode(',',$_SERVER['HTTP_X_REAL_IP']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}

解决办法(二)

根据上面的参数,我们也可以得出下方的方法,在主题的functions.php中底部添加以下代码:

function GetIP()
{$IP = str_replace(“, “, “”,str_replace($_SERVER['REMOTE_ADDR'],
“”,$_SERVER["HTTP_X_REAL_IP"]));
if ($_SERVER["HTTP_X_REAL_IP"] != “”) {$_SERVER['REMOTE_ADDR'] =
$IP;
} else {
$_SERVER['REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR'];
}}add_action( ‘init’, ‘GetIP’ );

转载本文章请注明出处,一经发现转载未留出处将会对贵站进行拉黑处理。

5
憧憬Licoy
版权声明:本站原创文章,由憧憬Licoy于2016年03月14日发表,共计1517字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(28条评论)
Loading...
明月登楼 评论达人LV.2
2016-10-29 15:55:07 回复

我最近CDN上碰到缩略图总是不更新,只有清除浏览器缓存后才会更新,郁闷呀!

我爱动感单车网 评论达人LV.1
2016-10-16 23:18:39 回复

想要让定时发布的新文章以及最新评论尽可能的及时予以显示,节点缓存有效期以及浏览器缓存时间,如何设置比较好,还望博主分享下说说你的使用经验。

懿古今 评论达人LV.1
2016-09-12 08:54:52 回复

垃圾评论确实很猖狂,我都是通过关键词来屏蔽的,效果还行