ecshop开发的外贸站限制国内用户访问的完美方法

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家

外贸站限制中文用户访问,如果你爱国,你的中文站也可以通过此方法限制日文用户访问我们的中文站,限制的方法我们通过两种方式结合来判断:

一、浏览器语言

二、ip地址。


可以在

修改ecshop/includes/init.php文件中增加对浏览器语言和ip的判断:
可以在
  1. if (is_spider())
  2. {
  3. /* 如果是蜘蛛的访问,那么默认为访客方式,并且不记录到日志中 */
  4. if (!defined('INIT_NO_USERS'))
  5. {
  6. define('INIT_NO_USERS', true);
  7. /* 整合UC后,如果是蜘蛛访问,初始化UC需要的常量 */
  8. if($_CFG['integrate_code'] == 'ucenter')
  9. {
  10. $user = & init_users();
  11. }
  12. }
  13. $_SESSION = array();
  14. $_SESSION['user_id'] = 0;
  15. $_SESSION['user_name'] = '';
  16. $_SESSION['email'] = '';
  17. $_SESSION['user_rank'] = 0;
  18. $_SESSION['discount'] = 1.00;
  19. }
复制代码
代码的下面增加
  1. function ipCIDRCheck ($ip, $cidr)
  2. {
  3. $arr_cidr = explode('/', $cidr);
  4. $net = $arr_cidr[0];
  5. $mask = $arr_cidr[1];
  6. $ip_net = ip2long ($net);
  7. $ip_mask = ~((1 << (32 - $mask)) - 1);

  8. $ip_ip = ip2long ($ip);

  9. $ip_ip_net = $ip_ip & $ip_mask;

  10. return ($ip_ip_net == $ip_net);
  11. }


  12. $cn_ip_str = file_get_contents(ROOT_PATH . 'data/cnip.txt');
  13. $cn_ip_arr=explode("\n",$cn_ip_str);
  14. $ip = real_ip();
  15. $is_cn_ip =false;
  16. foreach($cn_ip_arr as $subnet)
  17. {
  18. if(ipCIDRCheck ($ip, $subnet))
  19. {
  20. $is_cn_ip= true;
  21. break;
  22. }
  23. }
  24. $browse_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4);
  25. if(isset($_REQUEST['no_ip_imit']))
  26. {
  27. $no_ip_imit_time = gmtime() + 3600 * 24 * 30;
  28. setcookie("no_ip_imit", trim($_REQUEST['no_ip_imit']), $no_ip_imit_time, $$cookie_path, $cookie_domain);
  29. $_SESSION['no_ip_imit'] =$_REQUEST['no_ip_imit'];
  30. }
  31. if(! ( isset($_REQUEST['no_ip_imit']) || isset($_COOKIE['no_ip_imit']) || isset($_SESSION['no_ip_imit']) ) )
  32. {
  33. if(preg_match("/zh-c/i", $browse_lang) || $is_cn_ip )
  34. {
  35. header("http/1.1 403 Forbidden");
  36. die('403 Forbidden');
  37. }
  38. }
复制代码
如果是管理员想在国内不受限制的访问,可以访问一次
http://你的域名/?no_ip_imit=1

24小时内就不会被屏蔽了


如何获取最新中国ip数据库的图文详细教程及代码下载见

http://bbs.topit.cn/thread-973-1-1.html

回答:
自已顶一个,关注人的还是比较少

支持老大了!!!

顶一个