Board logo

标题: [教程] DISCUZ站长如果使用CDN请注意啊该问题存在于任何CDN产品 [打印本页]

作者: rar9    时间: 2012-3-12 12:57     标题: DISCUZ站长如果使用CDN请注意啊该问题存在于任何CDN产品

本帖最后由 rar9 于 2012-3-12 13:00 编辑

使用CDN后Discuz!论坛提示”抱歉,你的IP地址不在被充许…”的解决方案


该问题导致的结果:

1.DZ论坛可能无法获得用户的真实IP,导致某些用户IP显示的是CDN节点的IP

2.论坛访问量过大的话,可能会导致用户访问时提示“抱歉,您的 IP 地址不在被允许,或您的账号被禁用,无法访问本站点”

解决方法(DZ X2为例):
打开DZ    /source/class/class_core.php 文件

找到第341行,或者搜索“HTTP_CLIENT_IP”,找到如下代码:
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];

} elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],

if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],

方法1:

删除加红的部分
方法2:
临时注释加红部分,也就是比原来的代码多了二对注释符(/*和*/)即将上面的代码修改成:
/*
if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else
*/

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],

/*

if (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match(‘/^([0-9]{1,3}\.){3}[0-9]{1,3}$/’, $_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; }else

*/


if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all(‘#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s’, $_SERVER['HTTP_X_FORWARDED_FOR'],


部分版本的Discuz!该文件中没有加红的第2部分,这种版本,您只需要删除或注释第一部分即可
作者: vv768    时间: 2012-3-13 00:11

顶一个~,我去尝试下
作者: soukey    时间: 2012-3-13 18:02

我也设置一下,刚建站访问量还不大,没出现楼主说的情况
作者: jinco    时间: 2012-3-14 10:32

感谢rar9的分享,暂时还未见过此问题。
作者: rxhongchen    时间: 2012-4-2 09:53

回复 1# rar9


我刚用,还不知道会出现什么问题。    我先收藏,以后需要的时候在来看,先感谢下你~
作者: 65design    时间: 2012-4-22 02:18

我有客户也遇到了,他就是用的CDN 就有这问题!




欢迎光临 WDlinux官方论坛 (http://wdlinux.cn/bbs/) Powered by Discuz! 7.2