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>
在实际工作当中,还会有其它方法,比如正则表达式等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值