js判断内外网

/*判断是否是内网IP*/

function isInnerIPFn(){

// 获取当前页面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);

    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);

    console.log('是否是内网:'+isInnerIp);

    return isInnerIp;

}

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);

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、函数 1) 作用 封装一段待执行的代码 2)语法 3)使用 函数名自定义,见名知意,命名规范参照变量的命名规范...
    南坡三舅阅读 1,715评论 0 1
  • 正则表达式中的test 和exec方法 RegExp.prototype.test(str); 测试字符串中是否含...
    何必自找失落_阅读 2,299评论 0 0
  • //转化为dd-MM-yyyy HH:mm:ss export const dateReurn1 = (date1...
    不负好时光阅读 2,425评论 0 0
  • 正则表达式 正则表达式(Regular Expression)是计算机科学的一个概念。正则表达式使用单个字符串来描...
    yshenhn阅读 2,860评论 0 0
  • 1. 概念 正则表达式描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串、将匹配的子串做替换或者从...
    沈林生阅读 24,044评论 0 2

友情链接更多精彩内容