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中的相等与不等运算
Apr 25 Javascript
JavaScript中判断对象类型的几种方法总结
Nov 11 Javascript
JQuery Highcharts 动态生成图表的方法
Nov 15 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
Jun 16 Javascript
基于canvas实现的钟摆效果完整实例
Jan 26 Javascript
微信小程序 数据交互与渲染实例详解
Jan 21 Javascript
使用Bootstrap美化按钮实例代码(demo)
Feb 03 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
Aug 14 jQuery
使用DataTable插件实现异步加载数据
Nov 19 Javascript
Vue前端开发规范整理(推荐)
Apr 23 Javascript
vue+elementUI实现简单日历功能
Sep 24 Javascript
JS+CSS实现过渡特效
Jan 02 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
用Apache反向代理设置对外的WWW和文件服务器
2006/10/09 PHP
php实现最简单的MVC框架实例教程
2014/09/08 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
php实现小程序支付完整版
2018/10/09 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
2014/03/06 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
Bootstrap 轮播(Carousel)插件
2016/12/26 Javascript
nodeJS实现简单网页爬虫功能的实例(分享)
2017/06/08 NodeJs
微信小程序实现点击返回顶层的方法
2017/07/12 Javascript
JS实现浏览上传文件的代码
2017/08/23 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
2019/08/20 Javascript
vue实现扫码功能
2020/01/17 Javascript
解决vue页面刷新,数据丢失的问题
2020/11/24 Vue.js
python获取beautifulphoto随机某图片代码实例
2013/12/18 Python
python根据出生年份简单计算生肖的方法
2015/03/27 Python
Python内建模块struct实例详解
2018/02/02 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
体育课课后反思
2014/04/24 职场文书
教研处工作方案
2014/05/26 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
三峡大坝导游词
2015/01/31 职场文书
行政文员岗位职责
2015/02/04 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书