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 相关文章推荐
jscript之Read an Excel Spreadsheet
Jun 13 Javascript
关于锚点跳转及jQuery下相关操作与插件
Oct 01 Javascript
JavaScript判断浏览器类型的方法
Feb 10 Javascript
jQuery插件编写步骤详解
Jun 03 Javascript
Ionic如何创建APP项目
Jun 03 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
Jun 13 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
Aug 10 Javascript
jQuery.form.js的使用详解
Jun 14 jQuery
mui上拉加载更多下拉刷新数据的封装过程
Nov 03 Javascript
vue实现仿淘宝结账页面实例代码
Nov 08 Javascript
vue如何进行动画的封装
Sep 26 Javascript
TypeScript之调用栈的实现
Dec 31 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 日期加减的类,很不错
2009/10/10 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
this和执行上下文实现代码
2010/07/01 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
深入理解jquery中extend的实现
2016/12/22 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
[03:48]DOTA2完美大师赛主赛事第二日精彩集锦
2017/11/24 DOTA
python判断字符串是否纯数字的方法
2014/11/19 Python
python随机生成指定长度密码的方法
2015/04/04 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
Python面向对象程序设计之继承、多态原理与用法详解
2020/03/23 Python
python实现猜拳游戏项目
2020/11/30 Python
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
银行职业规划书范文
2013/12/28 职场文书
环保专业大学生职业规划设计
2014/01/10 职场文书
自我介绍演讲稿
2014/01/15 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
高中升旗仪式主持词
2015/07/03 职场文书
中秋节随笔
2015/08/15 职场文书
高中班主任寄语
2019/06/21 职场文书
导游词之杭州西湖
2019/09/19 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技
解决flex布局中子项目尺寸不受flex-shrink限制
2022/05/11 HTML / CSS