博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自己写的一个校验IP、IP掩码、IP段的方法
阅读量:4552 次
发布时间:2019-06-08

本文共 3294 字,大约阅读时间需要 10 分钟。

    以输入的IP总数为0

      自己写的一个校验IP、IP掩码、IP段的方法

    JS

    var ipNum=0;    function getKey(){          if(event.keyCode==13){              var ip= $('#testip').val();            if(testIp(ip,1)){                $('#testip').val("")                 }            }            if(ipNum>4278124287){                alert("超出IP总数");                $('#testip').val(ip)                return;            }        $('#ipnum').text(`以输入的IP总数为${ipNum}`)        $('#iplist').val(ipNum)    }    $('#iplist').on('click','.ipdelete',function(e){        ipNum=$('#iplist').val()-e.target.parentNode.value;        e.target.parentNode.remove();        $('#ipnum').text(`以输入的IP总数为${ipNum}`)        $('#iplist').val(ipNum)        e.preventDefault();    })     //type 为1的话会生成list  只想使用IP校验功能直接传IP     function testIp(ip,type){        var ip_patrn =/^(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/;            var ip_mask = /^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))\/(([0-9])|([1-2][0-9])|([3][0-2]))$/;        if(!type){            type==0;        }        if(ip!=""){            if(ip.indexOf("-")!=-1){                var ipOrigan=ip;                ip=ip.split("-");                if(ip_patrn.test(ip[0])&&ip_patrn.test(ip[1])){  //先验证是否是IP  在验证是否是正确的IP段  再计算IP数量                        var start = ip[0].split('.');                          var end = ip[1].split('.');                        var start_ip=start[0] * 256 * 256 * 256 + start[1] * 256 * 256 + start[2] * 256 + start[3]*1;                        var end_ip=end[0] * 256 * 256 * 256 + end[1] * 256 * 256 + end[2] * 256 + end[3]*1;                        if((end_ip - start_ip)>0){                            ipNum=end_ip - start_ip+1+ipNum;                            if(type==1&&ipNum<=4278124287){                            $("#iplist").append(`
  • ${ipOrigan}
  • `)} return true; }else{ alert('前后IP大小输入有误'); return false; } }else{ alert('请检查IP段格式'); return false; } }else if(ip.indexOf("/")!=-1){ //验证是否是正确的IP掩码 在计算数量 if(ip_mask.test(ip)){ var p=32-ip.slice(ip.indexOf("/")+1) var pnum=1; while(p){ pnum=2*pnum; p--; } ipNum=ipNum+pnum; if(type==1&&ipNum<=4278124287){ $("#iplist").append(`
  • ${ip}
  • `)} return true; }else{ alert('请检查IP掩码格式') return false; } }else{ if(!ip_patrn.test(ip)){ //验证是否是IP alert("请检查IP格式"); return false; } ipNum++ if(type==1&&ipNum<=4278124287){ $("#iplist").append(`
  • ${ip}
  • `)} return true; } }else{ alert("请输入"); return false; } }

     

    转载于:https://www.cnblogs.com/wwx875075608/p/9138068.html

    你可能感兴趣的文章
    关于传输协议的简单了解
    查看>>
    软件运行不了需安装.NET fremework3.5,或0xc0000135初始化失败怎么解决
    查看>>
    Android中你应该知道的设计模式
    查看>>
    第二次作业
    查看>>
    UVA 103 Stacking Boxes n维最长上升子序列
    查看>>
    各种错误集锦
    查看>>
    Map集合学习总结
    查看>>
    leetcode - Insert Interval
    查看>>
    javascript单线程,异步与执行机制
    查看>>
    腹部训练
    查看>>
    android ImageView scaleType属性
    查看>>
    day 4 继承
    查看>>
    14 模块
    查看>>
    4- 算法练习leetcode.com
    查看>>
    02-替换空格
    查看>>
    许式伟、张宴——系统架构运维思路对话
    查看>>
    android 左右页面滑动(滑屏)增加layout文件 而不是drawable(还有activity)
    查看>>
    【PHP】PHP中的排序函数sort、asort、rsort、krsort、ksort区别分析
    查看>>
    替换textarea文本值中的换行符
    查看>>
    万恶的KPI、新兴的OKR及让人纠结的程序员考核
    查看>>