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 相关文章推荐
如何阻止复制剪切和粘贴事件为了表单内容的安全
May 23 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
Sep 09 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
Jan 01 Javascript
总结JavaScript三种数据存储方式之间的区别
May 03 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
Feb 14 Javascript
微信小程序 地图map实例详解
Jun 07 Javascript
微信小程序图片宽100%显示并且不变形
Jun 21 Javascript
jQuery实现用户信息表格的添加和删除功能
Sep 12 jQuery
Vue入门之数据绑定(小结)
Jan 08 Javascript
vue编译打包本地查看index文件的方法
Feb 23 Javascript
vue2.0获取鼠标位置的方法
Sep 13 Javascript
JavaScript中的相等操作符使用详解
Dec 21 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
php微信公众平台开发类实例
2015/04/01 PHP
使用Json比用string返回数据更友好,也更面向对象一些
2011/09/13 Javascript
Jquery获取复选框被选中值的简单方法
2013/07/04 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
jQuery替换textarea中换行的方法
2015/06/10 Javascript
轻松实现jquery手风琴效果
2016/01/14 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
Python抓取百度查询结果的方法
2015/07/08 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
Python删除n行后的其他行方法
2019/01/28 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
Python进行特征提取的示例代码
2020/10/15 Python
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
服装设计行业个人的自我评价
2013/12/20 职场文书
大学生通用个人的自我评价
2014/02/10 职场文书
社团活动总结模板
2014/06/30 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
防汛工作情况汇报
2014/10/28 职场文书
教师节主持词开场白
2015/05/29 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
中学生运动会广播稿
2015/08/19 职场文书
Python djanjo之csrf防跨站攻击实验过程
2021/05/14 Python
Python制作春联的示例代码
2022/01/22 Python
golang使用map实现去除重复数组
2022/04/14 Golang