javascript实现验证IP地址等相关信息代码


Posted in Javascript onMay 10, 2015

本代码是从个人项目中提取出来的,应该可以算的上是相当全面有效的IP相关信息的验证代码了,用来前端验证

/* ****************** */
/* 判断IP地址是否合法 */
var judgeIpIsLegal = function(ipAddr){
  var regIps = /^(((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|[0-9])\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|[0-9]))$/;
  return regIps.test(ipAddr);
}
/* IP地址转换为二进制字符串 */
/* 例如:172.16.4.235 --> 10101100000100000000010011101011 */
var praseIpToBinary = function(ipAddress){
  var numArray = ipAddress.split(".");
  if(numArray.length != 4){
    alert("输入的IP有误");
    return;
  }
  var returnIpStr = "";
  for (var i = 0; i < 4; i++) {
    var curr_num = numArray[i];
    var number_Bin = parseInt(curr_num);
    number_Bin = number_Bin.toString(2);
    var iCount = 8-number_Bin.length;
    for (var j = 0; j < iCount; j++) {
      number_Bin = "0"+number_Bin;
    }
    returnIpStr += number_Bin;
  }
  return returnIpStr;
}
/* 判断子网掩码是否合法 */
/* 子网掩码必须是 1 和 0组成的连续的一段 如 11110000 */
var judgeSubnetMask = function(ipAddress){
  var binaryIpString = praseIpToBinary(ipAddress).toString();
  var subIndex = binaryIpString.lastIndexOf("1")+1;
  var frontHalf = binaryIpString.substring(0,subIndex);
  var backHalf = binaryIpString.substring(subIndex);
  if(frontHalf.indexOf("0") != -1 || backHalf.indexOf("1") != -1){
    return false;
  }else{
    return true;
  }
}
/* 两个IP地址做 与 操作 返回结果 */
/* 该功能主要用来实现 IP地址和子网掩码 相与,获取当前IP地址的IP地址段 */
/* 以此来验证输入的网关地址是否合法 */
var getIPsAndResult = function(ipAddr1,ipAddr2){
  var ipArray1 = ipAddr1.split(".");
  var ipArray2 = ipAddr2.split(".");
  var returnResult = "";
  if(ipArray1.length != 4 || ipArray2.length != 4 ){
    alert("输入的IP有误");
    return;
  }
  for (var i = 0; i < 4; i++) {
    var number1 = parseInt(ipArray1[i]);
    var number2 = parseInt(ipArray2[i]);
    returnResult += number1&number2;
    if(i<3){
      returnResult += ".";
    }
  }
  return returnResult;
}
/* 判断网关地址是否合法 */
var judgeGatewayResult = function(ipAddr,subnetMask,gateway){
  var andResult1 = getIPsAndResult(ipAddr,subnetMask);
  var andResult2 = getIPsAndResult(gateway,subnetMask);
  if(andResult1 == andResult2){
    return true;
  }else{
    return false;
  }
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
用Juery网页选项卡实现代码
Jun 13 Javascript
a标签的href和onclick 的事件的区别介绍
Jul 26 Javascript
JQuery工具函数汇总
Jun 15 Javascript
功能强大的jquery.validate表单验证插件
Nov 07 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
Dec 24 Javascript
浅谈vue-cli 3.0.x 初体验
Apr 11 Javascript
关于单文件组件.vue的使用
Sep 20 Javascript
JavaScript使用类似break机制中断forEach循环的方法
Nov 13 Javascript
javascript实现blob加密视频源地址的方法
Aug 08 Javascript
Flutter实现仿微信底部菜单栏功能
Sep 18 Javascript
js实现移动端吸顶效果
Jan 08 Javascript
js实现聊天对话框
Feb 08 Javascript
招聘网站基于jQuery实现自动刷新简历
May 10 #Javascript
javascript实现获取字符串hash值
May 10 #Javascript
Javascript实现计算个人所得税
May 10 #Javascript
AngularJS基础知识笔记之表格
May 10 #Javascript
AngularJS基础知识笔记之过滤器
May 10 #Javascript
浅谈下拉菜单中的Option对象
May 10 #Javascript
AngularJS基础学习笔记之控制器
May 10 #Javascript
You might like
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
jquery 隐藏与显示tr标签示例代码
2014/06/06 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
jQuery中wrapAll()方法用法实例
2015/01/16 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
解析vue data不可以使用箭头函数问题
2018/07/03 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
python创建临时文件夹的方法
2015/07/06 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
2015/10/13 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
Python3多线程基础知识点
2019/02/19 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
python匿名函数用法实例分析
2019/08/03 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
Python加密模块的hashlib,hmac模块使用解析
2020/01/02 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
2020/01/10 Python
多个python文件调用logging模块报错误
2020/02/12 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
Monnier Frères美国官网:法国知名奢侈品网站
2016/11/22 全球购物
美国女孩服装购物网站:Justice
2017/03/04 全球购物
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
竞职演讲稿范文
2014/01/11 职场文书
高三学生评语大全
2014/04/25 职场文书