Chinaunix首页 | 论坛 | 博客
  • 博客访问: 82946
  • 博文数量: 15
  • 博客积分: 15
  • 博客等级: 民兵
  • 技术积分: 204
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-30 11:18
个人简介

一个奋斗在北京的东北人,一直在打杂,从未被超越!

文章存档

2021年(1)

2013年(11)

2012年(3)

我的朋友

分类: JavaScript

2013-04-26 14:58:21

 

一、原理

子网掩码的合法性简单来讲也就是子网掩码就类似这样一串数字,前面一段是连续的1,类似“111111111”,后面一段是连续的0,类似“00000”,这样合法的样子是“11111111000000000”,总共是32位。

    一个合法的子网掩码要满足如下条件:

 1、是合法的IP地址

 2、二进制码要相邻,即形如111...11000...0的形式

 3、与IP地址对应,ABCD各类IP地址都有对应的掩码范围(以后再讨论)

二、实现方法

1、判断方法

根据以上的原理,可以用下面的方法进行子网掩码合法性进行判断:查找子网掩码字符串中的子串“01”,若查不到子网掩码就是合法的,否则是不合法的

2JavaScript代码实现

点击(此处)折叠或打开

  1. <html>
  2. <head>
  3. <title>子网掩码验证</title>
  4. </head>
  5. <body>
  6. <center>
  7.     <h1>子网掩码验证</h1>
  8.     <input type="text" name="mask" id="mask" value=""/>
  9.     <input type="button" name="mytest" id="mytest" value="check_value" onClick="test()"/>
  10. </center>

  11. <script>
  12. function _checkIput_fomartIP(ip)
  13. {
  14.     return (ip+256).toString(2).substring(1); //格式化输出(补零)
  15. }

  16. function validateMask(MaskStr)
  17. {
  18.     var IPArray = MaskStr.split(".");
  19.     var ip1 = parseInt(IPArray[0]);
  20.     var ip2 = parseInt(IPArray[1]);
  21.     var ip3 = parseInt(IPArray[2]);
  22.     var ip4 = parseInt(IPArray[3]);

  23.     if ((ip1 < 0 || ip1 > 255) || (ip2 < 0 || ip2 > 255) || (ip3 < 0 || ip3 > 255) || (ip4 < 0 || ip4 > 255))     
  24.        {
  25.            return false;
  26.     }

  27.     var ip_binary = _checkIput_fomartIP(ip1) + _checkIput_fomartIP(ip2) + _checkIput_fomartIP(ip3) + _checkIput_fomartIP(ip4);

  28.     if(-1 != ip_binary.indexOf("01"))
  29.         {
  30.         return false;
  31.     }
  32.  
  33.     return true;
  34. }

  35. function test()
  36. {
  37.     var MaskStr = document.getElementById("mask").value
  38.     
  39.     if(validateMask(MaskStr))
  40.     {
  41.         var str = "合法!"
  42.     }
  43.     else
  44.     {
  45.         var str = "非法!"
  46.     }

  47.     alert("子网掩码为: "+ MaskStr + " 验证结果:" + str);
  48. }

  49. </script>
  50. </body>
  51. </html>
在实际工作当中,还会有其它方法,比如正则表达式等。


    

阅读(1970) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~