百度一下,发现了一个好的方法。只要添加一段代码,IP地址就可以正常了,其实CDN在头部应该有把访问者IP发送的,那段代码就是把wordpress的ip中变量换成$_SERVER获取的。这个可以用在任意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

所有我们套用CDN后的来源IP的时候在wp-config.php中就应该这样写:

if(isset($_SERVER['HTTP_X_REAL_IP'])) {
$list = explode(',',$_SERVER['HTTP_X_REAL_IP']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
© 版权声明
本站所有文章禁止转载!