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 相关文章推荐
ExtJS自定义主题(theme)样式详解
Nov 18 Javascript
jQuery实现文本展开收缩特效
Jun 03 Javascript
js实现动态显示时间效果
Mar 06 Javascript
Javascript循环删除数组中元素的几种方法示例
May 18 Javascript
Vue中定义全局变量与常量的各种方式详解
Aug 23 Javascript
webstorm添加*.vue文件支持
May 08 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
Oct 12 Javascript
Vue.js中的extend绑定节点并显示的方法
Jun 20 Javascript
手把手带你入门微信小程序新框架Kbone的使用
Feb 25 Javascript
es6函数之严格模式用法实例分析
Mar 17 Javascript
js实现上传按钮并显示缩略图小轮子
May 04 Javascript
vue等两个接口都返回结果再执行下一步的实例
Sep 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP中基于ts与nts版本- vc6和vc9编译版本的区别详解
2013/04/26 PHP
mac下安装nginx和php
2013/11/04 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
php从字符串创建函数的方法
2015/03/16 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
中文字符串截取的js函数代码
2013/04/17 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
js判断复选框是否选中及选中个数的实现代码
2016/05/30 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
JS原型与继承操作示例
2019/05/09 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
Python编码时应该注意的几个情况
2013/03/04 Python
Python中使用MELIAE分析程序内存占用实例
2015/02/18 Python
python实现遍历文件夹修改文件后缀
2018/08/28 Python
浅谈Python 递归算法指归
2019/08/22 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
前台文员的岗位职责
2013/11/14 职场文书
阳光体育活动方案
2014/02/16 职场文书
大学生个人求职口试自我评价
2014/02/16 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
中学生操行评语
2014/04/24 职场文书
优秀班组申报材料
2014/12/25 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
Spring mvc是如何实现与数据库的前后端的连接操作的?
2021/06/30 Java/Android