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 相关文章推荐
仿谷歌主页js动画效果实现代码
Jul 14 Javascript
JS弹出层的显示与隐藏示例代码
Dec 27 Javascript
jquery事件重复绑定的快速解决方法
Jan 03 Javascript
jQuery匹配文档链接并添加class的方法
Jun 26 Javascript
在for循环中length值是否需要缓存
Jul 27 Javascript
js如何改变文章的字体大小
Jan 08 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
Apr 23 Javascript
详解webpack中的hash、chunkhash、contenthash区别
Jan 05 Javascript
Vue.js添加组件操作示例
Jun 13 Javascript
微信小程序结合mock.js实现后台模拟及调试
Mar 28 Javascript
js实现录音上传功能
Nov 22 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
Aug 10 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中使用excel的简单介绍
2013/08/02 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
Mac OS下配置PHP+MySql环境
2015/02/25 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
看看“疫苗查询”小程序有温度的代码
2018/07/31 Javascript
vue 实现websocket发送消息并实时接收消息
2019/12/09 Javascript
9种python web 程序的部署方式小结
2014/06/30 Python
研究Python的ORM框架中的SQLAlchemy库的映射关系
2015/04/25 Python
python简单的函数定义和用法实例
2015/05/07 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
python 消费 kafka 数据教程
2019/12/21 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
FC-Moto西班牙:摩托车手最大的购物场所之一
2019/04/11 全球购物
田径运动会开幕式及主持词
2014/03/28 职场文书
创建青年文明号材料
2014/05/09 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
2020年基层司法所建设情况调研报告
2019/11/30 职场文书
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL