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 相关文章推荐
用javascript获得地址栏参数的两种方法
Nov 08 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
Jun 08 Javascript
JavaScript中的Array 对象(数组对象)
Jun 02 Javascript
JavaScript中setter和getter方法介绍
Jul 11 Javascript
jQuery实现点击行选中或取消CheckBox的方法
Aug 01 Javascript
chrome浏览器如何断点调试异步加载的JS
Sep 05 Javascript
JS简单实现tab切换效果的多窗口显示功能
Sep 07 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
Apr 10 Javascript
jquery+css实现Tab栏切换的代码实例
May 14 jQuery
vue实现分页加载效果
Dec 24 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 Javascript
jQuery三组基本动画与自定义动画操作实例总结
May 09 jQuery
招聘网站基于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
中英文字符串翻转函数
2008/12/09 PHP
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
php中heredoc与nowdoc介绍
2014/12/25 PHP
一个简单的php路由类
2016/05/29 PHP
PHP微信支付实例解析
2016/07/22 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
推荐dojo学习笔记
2007/03/24 Javascript
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
Angular4 中常用的指令入门总结
2017/06/12 Javascript
jQuery接受后台传递的List的实例详解
2017/08/02 jQuery
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
2018/08/22 Python
详解python中的线程与线程池
2019/05/10 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
django多个APP的urls设置方法(views重复问题解决)
2019/07/19 Python
python的常见矩阵运算(小结)
2019/08/07 Python
python3 反射的四种基本方法解析
2019/08/26 Python
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
艺术用品:Arteza
2018/11/25 全球购物
毕业自我鉴定书
2014/03/24 职场文书
工地安全质量标语
2014/06/07 职场文书
庆国庆活动总结
2014/08/28 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
2016公司中秋节寄语
2015/12/07 职场文书