sheep 发表于 2022-11-16 10:20:16

js判断ip地址屏蔽指定地区访问代码(可判断蜘蛛)

(可指定屏蔽蜘蛛或用户,以下代码蜘蛛正常,用户无法访问,已使用百度站长工具抓取测试)
js判断ip地址屏蔽指定地区访问代码,禁止指定地区访问,结尾附直接判断蜘蛛和用户并限制访问的代码

js屏蔽地区访问代码1:(通过php调用绵羊优创网的本地ip库,直接复制代码即可使用)
<script type="text/javascript" src='http://smy.sheepyc.com/tool/ipku/getipinfo.php?return=ipinfo&format=js'>// 输出ipinfo 变量 var ipinfo = { province: "城市" };</script>
<script type="text/javascript">
var jumptourlA = "error.html"; // 重定向目标
var isSpider = navigator.userAgent.match(/(bot|spider|crawler)/i) ? 1 : 2; // 爬虫检测   
if (typeof ipinfo !== 'undefined' && ipinfo !== null) {
    var province = ipinfo.province; // 获取省份信息获取城市:localAddress.city
    var checkStrA = "北京";
    if (isSpider === 1) {/* 是爬虫 */ } else {
      // 不是爬虫,进行省份判断
      if (province.indexOf(checkStrA) !== -1) {
            window.location.replace(jumptourlA); // 重定向   
      }
    }
} else {
    console.error("sheep: ipinfo variable is not defined or is null.");
}
</script>分享一个简单错误提示页面,可用于跳转后显示:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>抱歉,站点已停止</title>
<style>
html,body,div,h1,*{margin:0;padding:0;}
body{background-color:#fefefe;color:#333}
.box{width:580px;margin:0 auto;}
h1{font-size:20px;text-align:center;background:url(背景图链接,不需要则删除) no-repeat top center; padding-top:90px;margin-top:30%;font-weight:normal;}
</style>
</head>
<body>
<div class="box"><h1>抱歉!该站点已停止运行!</h1></div>
</body>
</html>

js屏蔽指定地区和设备访问代码:
<!-- 屏蔽北京PC用户访问代码开始 -->
<script type="text/javascript" src='http://smy.sheepyc.com/tool/ipku/getipinfo.php?return=ipinfo&format=js'>// 输出ipinfo 变量 var ipinfo = { province: "城市" };</script>
<script type="text/javascript">
    var jumptourlA = "error.html"; // 重定向目标
    var isSpider = navigator.userAgent.match(/(bot|spider|crawler)/i) ? 1 : 2; // 爬虫检测   
    var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); // 移动设备检测
   
    if (typeof ipinfo !== 'undefined' && ipinfo !== null) {
      var province = ipinfo.province; // 获取省份信息
      var checkStrA = "北京";
      
      if (isSpider === 1) {
            /* 是爬虫,不处理 */
      } else {
            // 不是爬虫,进行省份和设备判断
            if (province.indexOf(checkStrA) !== -1 && !isMobile) {
                window.location.replace(jumptourlA); // 只重定向北京地区的PC用户
            }
      }
    } else {
      console.error("sheep: ipinfo variable is not defined or is null.");
    }
</script>
<!-- 屏蔽北京PC用户访问代码结束 -->

js屏蔽地区访问代码2(不推荐使用):(通过js调用互联网ip库,若无效需要找到可用的ip库链接)

<script type="text/javascript" src="http://ip.ws.126.net/ipquery"></script>
      <script>
                var province=localAddress.province;//获取所在省,比如广东省
                var city=localAddress.city;//获取所在市,比如广州市
                //判断省
                if(province.indexOf('北京')!= -1 || province.indexOf('上海')!= -1 || province.indexOf('江苏')!= -1 || province.indexOf('湖南')!= -1){
                        //alert(province);   
                        window.location.href="http://www.baidu.com";
                        }else{
                              
                              }
                //判断市
                if(city.indexOf('广州')!= -1 || city.indexOf('深圳')!= -1){
                        //alert(city);
                        window.location.href="http://www.baidu.com";   
                        }else{
                              }
    </script>
判断蜘蛛访问正常,用户访问跳转
<script type="text/javascript">
    var jumptourlA = "error.html"; // 重定向目标
    var isSpider = navigator.userAgent.match(/(bot|spider|crawler)/i) ? 1 : 2; // 爬虫检测   
    if (isSpider === 1) {/* 是爬虫 */ } else {
      window.location.replace(jumptourlA); // 重定向   
    }
</script>


页: [1]
查看完整版本: js判断ip地址屏蔽指定地区访问代码(可判断蜘蛛)