JavaScript实现子网掩码合法性验证

一、原理  

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

    一个合法的子网掩码要满足如下条件: 
 1、是合法的IP地址 
 2、二进制码要相邻,即形如111...11000...0的形式 
 3、与IP地址对应,A、B、C、D各类IP地址都有对应的掩码范围(以后再讨论) 

二、实现方法  

1、判断方法 

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

2、JavaScript代码实现  


<html> 
<head> 
<title>子网掩码验证</title> 
</head> 
<body> 
<center> 
    <h1>子网掩码验证</h1> 
    <input type="text" name="mask" id="mask" value=""/> 
    <input type="button" name="mytest" id="mytest" value="check_value" onClick="test()"/> 
</center> 

<script> 
function _checkIput_fomartIP(ip) 

    return (ip+256).toString(2).substring(1); //格式化输出(补零) 


function validateMask(MaskStr) 

    var IPArray = MaskStr.split("."); 
    var ip1 = parseInt(IPArray[0]); 
    var ip2 = parseInt(IPArray[1]); 
    var ip3 = parseInt(IPArray[2]); 
    var ip4 = parseInt(IPArray[3]); 

    if ((ip1 < 0 || ip1 > 255) || (ip2 < 0 || ip2 > 255) || (ip3 < 0 || ip3 > 255) || (ip4 < 0 || ip4 > 255))      
       { 
           return false; 
    } 

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

    if(-1 != ip_binary.indexOf("01")) 
        { 
        return false; 
    } 

    return true; 


function test() 

    var MaskStr = document.getElementById("mask").value 
    
    if(validateMask(MaskStr)) 
    { 
        var str = "合法!" 
    } 
    else 
    { 
        var str = "非法!" 
    } 

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


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

你可能感兴趣的:(JavaScript实现子网掩码合法性验证)