ecshop外贸网站如何限制国内用户访问
更新时间:2016-07-11 点击量:1510
Tag关键词: 外贸 ecshop模板 ecshop4.0模板 二次开发 ecshop3.6模板 ecshop小程序
ecshop系统的强大功能让很多外贸用户也在使用,现在很多外贸用户根据自己行业要求不希望有国内的ip访问。优易软件为大家整理ecshop外贸网站如何限制国内用户访问设置操作如下:
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小时内就不会被屏蔽了
完成以上步骤之后记得清缓存,之后再试试是不是可以生效了
如果文章对您有帮助,就打赏一个吧