百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>Ecshop教程> ecshop做的外贸网站如何限制国内用户访问
分享文章到:

ecshop做的外贸网站如何限制国内用户访问

发布时间:12/03 来源: 浏览: 关键词:

ecshop系统的强大使得有很多外贸用户也使用他了,不过现在很多外贸用户希望可以限制国内ip访问。魔客吧整理了一下修改教程如下:

1,修改ecshop/includes/init.php文件中增加对浏览器语言和ip的判断

if (is_spider())
{
/* 如果是蜘蛛的访问,那么默认为访客方式,并且不记录到日志中 */
if (!defined('INIT_NO_USERS'))
{
define('INIT_NO_USERS', true);
/* 整合UC后,如果是蜘蛛访问,初始化UC需要的常量 */
if($_CFG['integrate_code'] == 'ucenter')
{
$user = & init_users();
}
}
$_SESSION = array();
$_SESSION['user_id'] = 0;
$_SESSION['user_name'] = '';
$_SESSION['email'] = '';
$_SESSION['user_rank'] = 0;
$_SESSION['discount'] = 1.00;
}

下面增加


function ipCIDRCheck ($ip, $cidr)
{
$arr_cidr = explode('/', $cidr);
$net = $arr_cidr[0];
$mask = $arr_cidr[1];
$ip_net = ip2long ($net);
$ip_mask = ~((1 << (32 - $mask)) - 1);

$ip_ip = ip2long ($ip);

$ip_ip_net = $ip_ip & $ip_mask;

return ($ip_ip_net == $ip_net);
}


$cn_ip_str = file_get_contents(ROOT_PATH . 'data/cnip.txt');
$cn_ip_arr=explode("n",$cn_ip_str);
$ip = real_ip();
$is_cn_ip =false;
foreach($cn_ip_arr as $subnet)
{
if(ipCIDRCheck ($ip, $subnet))
{
$is_cn_ip= true;
break;
}
}
$browse_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4);
if(isset($_REQUEST['no_ip_imit']))
{
$no_ip_imit_time = gmtime() + 3600 * 24 * 30;
setcookie("no_ip_imit", trim($_REQUEST['no_ip_imit']), $no_ip_imit_time, $$cookie_path, $cookie_domain);
$_SESSION['no_ip_imit'] =$_REQUEST['no_ip_imit'];
}
if(! ( isset($_REQUEST['no_ip_imit']) || isset($_COOKIE['no_ip_imit']) || isset($_SESSION['no_ip_imit']) ) )
{
if(preg_match("/zh-c/i", $browse_lang) || $is_cn_ip )
{
header("http/1.1 403 Forbidden");
die('403 Forbidden');
}
}

如果是管理员想在国内不受限制的访问,可以访问一次
http://你的域名/?no_ip_imit=1

24小时内就不会被屏蔽了


完成以上步骤之后记得清缓存,之后再试试是不是可以生效了

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

相关文章

共有7人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板