一、原理
子网掩码的合法性简单来讲也就是子网掩码就类似这样一串数字,前面一段是连续的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>
在实际工作当中,还会有其它方法,比如正则表达式等。
阅读(863) | 评论(0) | 转发(0) |