使用者只需要在js中调用方法并传入一个ID即可生成验证工具      $("#IP").ipInput().Init();

<div id="IP"></div>

(function() {var ipInputer = function (ele) {this.$element = ele;}ipInputer.prototype = {Init: function() {var tample = '<div class="modal-border">'+'<div class="tip tipstxt"><div class="inner"></div><div style="margin:4px;">&nbspIP格式:1.1.1.1</br>&nbspIP段格式:1.1.1.1-2.2.2.2</br>&nbspIP掩码格式:1.1.1.1/32</div></div>'+'<div class="modal-body-item col-md-12">'+'<div class="col-md-12 input-group">'+'<input type="text" class="ip-input form-control"  placeholder="请输入合法IP">'+'<i class="fa fa-info tips" style="color:blue"></i>'+'<span class="input-group-btn">'+'<button class="btn btn-default ip-input-add-button btn_right">添加</button>'+'</span>'+'</div>'+'<div class="ip-list" class="col-md-12 input-group">'+'</div>'+'</div>'+'<div class="modal-body-item col-md-12">'+'<div class="col-md-12">'+'已输入的IP总个数为<span class="ip-number">0</span>'+'</div>'+'</div>'+'</div>';var ipNum=0;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]))$/;this.$element.html(tample);function CreatDom(e){var ip = e.data.$element.find(".ip-input").val();var oldipNum=e.data.$element.attr("ipunm");if(oldipNum==undefined){oldipNum=0;}oldipNum=oldipNum*1;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+oldipNum;if(ipNum<=4278124287){e.data.$element.find(".ip-list").append(`<div class="input-group"><input type="text" class="form-control" placeholder="" value="${ipOrigan}" class="addIpShow" ipunm=${end_ip - start_ip+1} disabled> <span class="input-group-btn"><button class="btn btn-default ipdelete btn_right">删除</button></span></div>`);e.data.$element.attr("ipunm",ipNum)e.data.$element.find('.ip-number').text(ipNum)e.data.$element.find(".ip-input").val("")}else{alert('超过最大ip数量')return false;}        }else{e.data.$element.find(".ip-input").val(ipOrigan);alert('前后IP大小输入有误');return false;}}else{e.data.$element.find(".ip-input").val(ip);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=oldipNum+pnum;if(ipNum<=4278124287){e.data.$element.find(".ip-list").append(`<div class="input-group"><input type="text" name=""  class="form-control" placeholder="" value="${ip}" class="addIpShow" ipunm=${pnum} disabled> <span class="input-group-btn"><button class="btn btn-default ipdelete btn_right">删除</button></div>`)e.data.$element.attr("ipunm",ipNum)e.data.$element.find('.ip-number').text(ipNum)e.data.$element.find('.ip-input').val("")}else{alert('超过最大ip数量')return false;}}else{e.data.$element.find('.ip-input').val(ip)alert('请检查IP掩码格式')return false;}}else{if(!ip_patrn.test(ip)){  //验证是否是IPalert("请检查IP格式");return false;}ipNum=oldipNum+1if(ipNum<=4278124287){e.data.$element.find(".ip-list").append(`<div class="input-group"><input type="text" name=""   class="form-control" placeholder="" value="${ip}" class="addIpShow" ipunm=1 disabled> <span class="input-group-btn"><button class="btn btn-default ipdelete btn_right">删除</button></div>`)e.data.$element.attr("ipunm",ipNum)e.data.$element.find('.ip-number').text(ipNum)e.data.$element.find('.ip-input').val("")}else{alert('超过最大ip数量')return false;}}}else{alert("请输入");return false;}  }this.$element.off();this.$element.on("click",".ip-input-add-button",this,function(e){e.stopPropagation()   CreatDom(e)  });   this.$element.on("mouseover",".tips",this,function(e){  e.data.$element.find('.tipstxt').css("display","block")});   this.$element.on("mouseleave",".tips",this,function(e){  e.data.$element.find('.tipstxt').css("display","none")});   this.$element.on("click",".ipdelete",this,function(e){ipNum=e.data.$element.attr("ipunm")-$(this).parent().parent().children(":nth-child(1)").attr("ipunm");$(this).parent().parent().remove();e.data.$element.find('.ip-number').text(ipNum)e.data.$element.attr("ipunm",ipNum)})this.$element.on("keydown",".ip-input",this,function(e){e.stopPropagation() if(e.which==13){CreatDom(e)}})},Remove:function(){this.$element.off();this.$element.empty();this.$element.attr("ipunm",0)},}$.fn.ipInput = function() {//创建Beautifier的实体var ipInput = new ipInputer(this);//调用其方法return ipInput;// return ipInput.Init();
    }
})(); 

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

自己写的一个校验IP、IP掩码、IP段的方法封装到了JQ中,方便了使用者的使用...相关推荐

  1. sand java_我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,...

    我在sand用java写了一个读取wifi密码的程序,该方法由主方法调用,运行没问题,效果也正常,就是无法连续调用,就是如果调用一次就退出然后再运行就可以,如果用完了,再主方法里选择... 我在san ...

  2. Linux下实现一个网卡绑定多个IP地址

    在我们用Linux来架设Web服务器和FTP服务器的时候有可能会遇到在一台服务其上实现多个站点的需要(虚拟主机),这种情况下我们可以通过增加物理网卡,来解决.但是我们的服务器上会有多少多余的扩展槽呢? ...

  3. 面试题整理17 输入一个字符串判断一个字符串是否是有效ip地址

    题目:输入一个字符串判断字符串是否为有效ip地址,  ip地址的形式为XXX.XXX.XXX.XXX.对于XXX表示为0-256的数,但是如果第一位是0而且整数不为0则是非法的,如01 不允许使用 ...

  4. 【华为云技术分享】《跟唐老师学习云网络》 — IP和掩码

    [摘要] 我们下面接着上次第二篇开启讲解IP和掩码知识,如有疑问点欢迎下方评论一起交流. 一.主机的门牌号(IP地址) 当接入到网络里面的主机数量越来越多,每台主机都需要的门牌号(IP地址)数量就越来 ...

  5. 用php写出显示客户端ip与服务器ip的代码.,PHP面试题答案

    PHP面试题答案 1.求$a,$b,$c三个数中的最大值和最小值(5分) echo max($a,$b,$c); echo min($a,$b,$c); 2.echo().print().print_ ...

  6. Java根据IP地址/掩码位(CIDR)和起始IP-终止IP计算网段(IPV4和IPV6)

    Java根据IP地址/掩码位(CIDR)和起始IP-终止IP计算所有IP地址(IPV4和IPV6) 计算IP列表 IPV4 IPV6 IP校验 IPV4 IPV6 计算IP列表 IPV4 1.需要的j ...

  7. linux多网卡配置ip地址(linux一个网卡配置多个ip)

    Linux如何配置ip地址 1.打开Linux终端系统,然后在系统中输入如下代码. 2.然后开始填写ip地址.子网掩码.网关等命令代码,如图所示. 3.在终端填写完之后,进行保存然后退出. 4.接着把 ...

  8. 已知ip和掩码,求子网的ip范围

    已知IP地址为128.14.35.7/20是某CIDR地址块中的一个地址,为什么它所在地址块的最小地址是128.14.32.0并且最大地址是128.14.47.255? 因为ip地址32位二进制,用点 ...

  9. 一个通过捕获ARP发现IP的小工具

    0 由来 公司接入层交换机划分了很多Vlan,每个Vlan对应一个IP子网,各个房间所属Vlan号非常混乱.有时候,电脑IP丢失或新配电脑时,不能知道到底该配置那个IP网段.解决办法就是,登录交换机, ...

  10. 引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应

    引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应 ...

最新文章

  1. 【转】C#生成验证码
  2. MySQL 的实时性能监控利器
  3. ES6之主要知识点(二) 变量的解构赋值。默认值
  4. windows java路径问题_java 文件路径问题
  5. 视觉slam学习笔记以及课后习题《第五讲特征点法视觉里程计》
  6. Swift和R3联手了,跨境支付市场竞争升级
  7. PES实况足球2018 中文版下载解说 中超德甲亚冠世界杯夏季转会 全dlc
  8. 静态代码自动扫描p3c的使用
  9. MIUI主题风格_一种Android系统换肤功能的设计
  10. 找到了airdrop无法发现对方的原因了,原因你想不到!
  11. Win8 许可证过期怎么重新激活?
  12. springcloud采坑-jason序列化中的Date对象
  13. 邮件营销EDM模板制作规范
  14. 博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈)
  15. PCI GXL学习之安装篇
  16. 【行人轨迹预测数据集——ETH、UCY】
  17. Spring Security Oauth2 认证流程
  18. 打造爆款产品需要注意什么
  19. CMemoryDC(是吕鑫写的版本)
  20. 2020.3.29总结

热门文章

  1. 用js两张图片合并成一张图片
  2. matlab tanh导数,谁知道tanh(x)的二阶导数-tanh-数学-郝啪韭同学
  3. Golang 中map与GC“纠缠不清”的关系
  4. AtCoder从小白到大神的进阶攻略
  5. 会计如何使用计算机,2020年高级会计师考试如何使用计算器?(图文说明)
  6. 【动力学】汽车性能仿真系统含Matlab源码
  7. A4988驱动步进电机教学
  8. 装完金蝶电脑无限重启_电脑一直自动重启的原因与解决方法
  9. 三个月华为od工作感受:关于转正,身份和适合谁
  10. [BZOJ1488][HNOI2009]图的同构(dfs+置换群+数论+组合数学)