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 相关文章推荐
来自chinaz的ajax获取评论代码
May 03 Javascript
javascript AutoScroller 函数类
May 29 Javascript
jquery 问答知识整理
Feb 11 Javascript
jQuery 获取兄弟元素的几种不错方法
May 23 Javascript
Node.js事件驱动
Jun 18 Javascript
Javascript的表单验证-提交表单
Mar 18 Javascript
JS生成某个范围的随机数【四种情况详解】
Apr 20 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
Oct 31 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
Dec 03 Javascript
微信小程序实现动态获取元素宽高的方法分析
Dec 10 Javascript
vue实现滑动到底部加载更多效果
Oct 27 Javascript
微信小程序 云开发模糊查询实现解析
Sep 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
如何使用php输出时间格式
2013/08/31 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
javascript 限制输入和粘贴(IE,firefox测试通过)
2008/11/14 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
浅谈JavaScript的全局变量与局部变量
2016/06/10 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
python numpy 显示图像阵列的实例
2018/07/02 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
自定义Django默认的sitemap站点地图样式
2020/03/04 Python
如何基于python实现不邻接植花
2020/05/01 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
Java文件和目录(IO)操作
2014/08/26 面试题
测绘工程专业个人自我评价
2013/12/01 职场文书
社团招新策划书
2014/02/04 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
班主任工作实习计划
2015/01/16 职场文书
教师党员个人总结
2015/02/10 职场文书
思想工作总结范文
2015/08/12 职场文书
团支部书记竞选稿
2015/11/21 职场文书
车位出租协议书范本
2016/03/19 职场文书
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技