web判断外网内网

直接呓代码

//判断是否内外网  20190505
 export function isInnerIPFn(){
  //返回的地址值
   var BASE_URL = ''
  // 获取当前页面url
  var curPageUrl = window.location.href;
  console.log('curPageUrl-0  '+curPageUrl);

  var reg1 = /(http|ftp|https|www):\/\//g;//去掉前缀
  curPageUrl =curPageUrl.replace(reg1,'');
  console.log('curPageUrl-1  '+curPageUrl);

  var reg2 = /\:+/g;//替换冒号为一点
  curPageUrl =curPageUrl.replace(reg2,'.');
  console.log('curPageUrl-2  '+curPageUrl);

  curPageUrl = curPageUrl.split('.');//通过一点来划分数组
  console.log('curPageUrl:',curPageUrl);

  var ipAddress = curPageUrl[0]+'.'+curPageUrl[1]+'.'+curPageUrl[2]+'.'+curPageUrl[3];

  var isInnerIp = false;//默认给定IP不是内网IP
  var ipNum = getIpNum(ipAddress);
  /**
     * 私有IP:
     *         A类  10.0.0.0    -10.255.255.255
     *       B类  172.16.0.0  -172.31.255.255
     *       C类  192.168.0.0 -192.168.255.255
     *       D类  127.0.0.0   -127.255.255.255(环回地址)
        **/
  var aBegin = getIpNum("10.0.0.0");
  var aEnd = getIpNum("10.255.255.255");

  var bBegin = getIpNum("172.16.0.0");
  var bEnd = getIpNum("172.31.255.255");

  var cBegin = getIpNum("192.168.0.0");
  var cEnd = getIpNum("192.168.255.255");

  var dBegin = getIpNum("127.0.0.0");
  var dEnd = getIpNum("127.255.255.255");

  isInnerIp = isInner(ipNum,aBegin,aEnd) || isInner(ipNum,bBegin,bEnd) || isInner(ipNum,cBegin,cEnd) || isInner(ipNum,dBegin,dEnd) || 'http://localhost';
  console.log('是否是内网:'+isInnerIp);
  // return isInnerIp;
  if(isInnerIp){
     BASE_URL = 'http://10.19.8.21:9010' //内网
  }else{
     BASE_URL = 'http://222.240.233.67:9010' //外网
  }
  console.log('BASE_URL:',BASE_URL)
  return BASE_URL
}

function getIpNum(ipAddress) {/*获取IP数*/
  var ip = ipAddress.split(".");
  var a = parseInt(ip[0]);
  var b = parseInt(ip[1]);
  var c = parseInt(ip[2]);
  var d = parseInt(ip[3]);
  var ipNum = a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;
  return ipNum;
}

function isInner(userIp,begin,end){
  return (userIp>=begin) && (userIp<=end);
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值