首页 web前端 js教程 js针对ip地址、子网掩码、网关的逻辑性判断_javascript技巧

js针对ip地址、子网掩码、网关的逻辑性判断_javascript技巧

May 16, 2016 pm 03:21 PM
ip地址 js 子网掩码 网关

因为要做静态地址配置的js校验,找了好多资料发现网上都是关于ip,mask的有效性检查,没有ip,submask,gateway的逻辑性判断,自己写下代码供需要的人参考。

普及下网关地址知识:

第一点:进行与运算1与1得1,1与0为0,0与0为0。首先把ip和子网掩码展开
10.70.64.223        00001010 .01000110.01000000.11011111
255.255.255。0   111111111.11111111.11111111.00000000
网段就是         00001010 .01000110.01000000.00000000
然后转换成十进制就是:10.70.64.0

第二点:IP地址与子网掩码做与运算和网关地址与子网掩码做与运算得到的结果应该是一致的就对了,也就是主机号一致。
我这里是先用js将ip,mask,gateway按照‘.'分隔后相与做判断的。

第三点:js的按位与运算

result = 【整数1】 & 【整数1】
& 对两个 32 位表达式的每一个位执行按位“与”运算。 如果两个位均为 1,则结果是 1。 否则,结果为 0。

分享js针对ip地址、子网掩码、网关的逻辑性判断详细代码

function checkIP(ip) 
{ 
 obj=ip;
 var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; 
 var reg = obj.match(exp); 
 if(reg==null) 
 { 
  return false;//不合法
 } 
 else 
 { 
  return true; //合法
 } 
}
 
function checkMask(mask) 
{ 
 obj=mask; 
 var exp=/^(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)$/; 
 var reg = obj.match(exp); 
 if(reg==null) 
 { 
   return false; //"非法"
 } 
  else 
 { 
   return true; //"合法"
 } 
} 
 var static_ip= document.getElementById('static_ip').value;
  var static_mask= document.getElementById('static_mask').value; 
  var static_gw= document.getElementById('static_gw').value;

  
  if (static_ip=='')
  {
   // $("#static_ip_error").css("display","block");
   document.getElementById('static_ip').focus();
   return false;
  }else if(!checkIP(static_ip))
  {
   //$("#static_ip_error").css("display","none");
   document.getElementById('static_ip').focus();
   return false;    
  }
   
  if(static_mask=='')
  { 
   //$("#static_mask_error").css("display","block");
   document.getElementById('static_mask').focus();
   return false;  
  }else if(!checkMask(static_mask))
  {
   //$("#static_mask_error").css("display","none"); 
   document.getElementById('static_mask').focus();
   return false;  
  }  
  
  if(static_gw=='')
  { 
   //$("#static_gw_error").css("display","block");
   document.getElementById('static_gw').focus();
   return false;  
  }else if(!checkIP(static_gw))
  {
   //$("#static_gw_error").css("display","none");
   document.getElementById('static_gw').focus();
   return false;    
  } 
 

 if(static_ip == static_mask || static_mask == static_gw || static_mask == static_gw)
 {
  alert('地址输入错误!');
  return false; //3个地址不能相同
 }
 
 var static_ip_arr = new Array;
 var static_mask_arr = new Array;
 var static_gw_arr = new Array;
  
 static_ip_arr = static_ip.split(".");
 static_mask_arr = static_mask.split(".");
 static_gw_arr = static_gw.split(".");

 var res0 = parseInt(lan_ip_arr[0]) & parseInt(static_mask_arr[0]);
 var res1 = parseInt(lan_ip_arr[1]) & parseInt(static_mask_arr[1]);
 var res2 = parseInt(lan_ip_arr[2]) & parseInt(static_mask_arr[2]);
 var res3 = parseInt(lan_ip_arr[3]) & parseInt(static_mask_arr[3]);
 
 var res0_gw = parseInt(static_gw_arr[0]) & parseInt(static_mask_arr[0]);
 var res1_gw = parseInt(static_gw_arr[1]) & parseInt(static_mask_arr[1]);
 var res2_gw = parseInt(static_gw_arr[2]) & parseInt(static_mask_arr[2]);
 var res3_gw = parseInt(static_gw_arr[3]) & parseInt(static_mask_arr[3]);
 
 if(res0==res0_gw && res1==res1_gw && res2==res2_gw && res3==res3_gw)
 {
  
 }else{
  alert('IP地址与子网掩码、网关地址不匹配!');
  return false;
 }
登录后复制

js验证IP及子网掩码的合法性代码分享:

function checkIP(ip) 
{ 
  obj=ip;
  var exp=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/; 
  var reg = obj.match(exp); 
  if(reg==null) 
  { 
    return false;//不合法
  } 
  else 
  { 
    return true; //合法
  } 
}
 
function checkMask(mask) 
{ 
  obj=mask; 
  var exp=/^(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)$/; 
  var reg = obj.match(exp); 
  if(reg==null) 
  { 
     return false; //"非法"
  } 
   else 
  { 
     return true; //"合法"
  } 
}
登录后复制

以上就是本文的全部内容,希望对大家的学习有所帮助。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

小红书如何设置不显示ip地址?它怎么改id定位城市? 小红书如何设置不显示ip地址?它怎么改id定位城市? Mar 27, 2024 pm 03:00 PM

小红书作为一款流行的社交电商平台,用户可以在这里分享生活点滴、发现心仪商品。有些用户对个人隐私较为敏感,希望在小红书上不显示IP地址,以保护自己的网络隐私。那么,小红书如何设置不显示IP地址呢?本文将围绕这一问题进行详细解答。一、小红书如何设置不显示ip地址?1.修改小红书设置:打开小红书APP,点击右下角的“我”,进入个人中心。然后点击头像,进入账号设置。在账号设置中,找到“隐私设置”,点击进入。在这里,你可以找到关于IP地址的设置选项,将其关闭即可。2.清除缓存:有时候,小红书可能会显示错误

小米手机ip地址在哪里 小米手机ip地址在哪里 Feb 29, 2024 pm 06:10 PM

小米手机ip地址在哪里?在小米手机中是可以查询到ip地址,但是多数的用户不知道ip地址在哪里查询,接下来就是小编为用户带来的小米手机ip地址查看方法图文教程,感兴趣用户快来一起看看吧!小米手机ip地址在哪里1、首先打开小米手机中的设置功能,选择【我的设备】点击进入;2、然后在我的设备功能页,点击【全部参数】服务;3、接着在全部参数页面,滑动到底部选择【状态信息】;4、最后在状态信息界面即可看到ip地址。

闲鱼在哪修改ip地址_闲鱼ip地址修改方法分享 闲鱼在哪修改ip地址_闲鱼ip地址修改方法分享 Mar 20, 2024 pm 05:06 PM

闲鱼是一款很实用的二手交易平台,在这里我们可以购买很多不同的商品,也能出售自己的闲置物品,如果想修改自己的地址怎么操作呢?下面就来和小编一起看看吧!闲鱼ip地址修改方法分享首先打开闲鱼软件,进入首页后,在左上角可以看到海鲜市场、推荐、地址等选项,点击“地址”。2、然后在地址的页面中我们点击地址旁边的【向下箭头】;3、最后点击过后在选择城市的页面中我们点击城市即可;

抖音IP地址怎么变位置?IP地址变位置是什么原因? 抖音IP地址怎么变位置?IP地址变位置是什么原因? Mar 21, 2024 pm 06:30 PM

用户们通过抖音分享生活、展示才艺,与全国乃至全球的网友互动。有些用户出于隐私保护或地域限制等原因,希望改变自己在抖音上的IP地址。那么,抖音IP地址怎么变位置呢?一、抖音IP地址怎么变位置?代理服务器是一种用于将用户请求转发到互联网并返回响应的中介服务。通过配置代理服务器,用户可以隐藏其真实IP地址,实现IP地址的变更。这种方式有助于保护用户的隐私并提高网络安全性。代理服务器还可用于访问受限内容或绕过地理位置限制。总的来说,使用代理服务器是一种实用的网络工具,可以帮助用户更安全、更自由地浏览互联

股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤 股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤 Dec 17, 2023 pm 06:55 PM

股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤,需要具体代码示例随着互联网和科技的快速发展,股票交易已经成为许多投资者的重要途径之一。而股票分析是投资者决策的重要一环,其中蜡烛图被广泛应用于技术分析中。学习如何使用PHP和JS绘制蜡烛图将为投资者提供更多直观的信息,帮助他们更好地做出决策。蜡烛图是一种以蜡烛形状来展示股票价格的技术图表。它展示了股票价格的

推荐:优秀JS开源人脸检测识别项目 推荐:优秀JS开源人脸检测识别项目 Apr 03, 2024 am 11:55 AM

人脸检测识别技术已经是一个比较成熟且应用广泛的技术。而目前最为广泛的互联网应用语言非JS莫属,在Web前端实现人脸检测识别相比后端的人脸识别有优势也有弱势。优势包括减少网络交互、实时识别,大大缩短了用户等待时间,提高了用户体验;弱势是:受到模型大小限制,其中准确率也有限。如何在web端使用js实现人脸检测呢?为了实现Web端人脸识别,需要熟悉相关的编程语言和技术,如JavaScript、HTML、CSS、WebRTC等。同时还需要掌握相关的计算机视觉和人工智能技术。值得注意的是,由于Web端的计

比特币交易IP地址(比特币交易IP地址公开吗) 比特币交易IP地址(比特币交易IP地址公开吗) Feb 06, 2024 am 10:03 AM

比特币交易IP地址比特币交易IP地址是比特币交易系统中不可或缺的一个重要组成部分。它是比特币交易平台的核心,比特币交易者可以通过它进行比特币交易。比特币交易IP地址是比特币交易系统的基础,也是比特币交易者可以进行比特币交易的基础。比特币交易IP地址是一个全球性的网络地址,用于定位比特币交易系统的服务器和交易者的设备。通过查询比特币交易IP地址,可以获取交易状态和相关信息。此外,比特币交易IP地址还可用于连接比特币交易系统的客户端和交易者的设备。比特币交易IP地址公开吗?比特币交易的IP地址不会公

网关Ping不通怎么回事?Ping不通什么原因? 网关Ping不通怎么回事?Ping不通什么原因? Mar 13, 2024 pm 03:40 PM

  网络ping不通,是什么回事?其实这是个非常常见的问题了,主要分为两种情况,同网段ping不通和不同网段ping不通,下面就来看看详细内容吧。  同网段ping不通的原因ping命令无法连接的情况通常有两种:一是在同一网段内无法ping通的IP地址,另一种是在不同网段内无法ping通的IP地址。这两种情况具有不同的解决方法。首先,我们来讨论在同一网段内ping不通的情况。  一、同网段ping不通,结果是“无法访问目标主机”  目的ip和源ip是同一网段的,ping的结果是&l

See all articles