js实现ip地址和子网掩码功能计算,并判断指定ip地址是否在网段之间

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
	</head>
	<body>
		<div>
			<div>ip:<input id="ip" type="text" value="192.168.30.5"/></div>
			<div>子网掩码:<input id="netMask" type="text" value="255.255.255.0" /></div>
			<div>输入范围(必须在ip和mac相与的网段之间):<input type="text" id="addValue"/></div>
			<div><button id="btnClick">点击</button></div>
		</div>
	</body>
	<script type="text/javascript">
		$("#btnClick").on("click",function(){
			var resultIp = $("#ip").val().split(".");//IP地址
	        var resultMask = $("#netMask").val().split(".");//子网掩码
			var resultAddValue=$("#addValue").val().split(".");//输入IP地址范围
//			console.log('resultIp',resultIp);
//			console.log('resultMask',resultMask);
//			console.log('resultAddValue',resultAddValue);
	        
	        //将输入IP范围转换成整数
	        var resultAddValueNumber = Number(resultAddValue[0])*256*256*256 + Number(resultAddValue[1])*256*256 + Number(resultAddValue[2])*256 +Number(resultAddValue[3]);
//	    	console.log('resultAddValueNumber',resultAddValueNumber);
	        var subNet = [];//ip地址与子网掩码相与的网段结果
	        for (var i = 0, num = resultIp.length; i < num; i++) {
	            var c = parseInt(resultIp[i]) & parseInt(resultMask[i]);
	            subNet.push(c);
	        }
	        subNet = subNet.join(".");
	        // console.log(subNet);
	        var subNetResult = subNet.split(".");
//	        console.log('subNetResult',subNetResult);
			//限制输入范围在相与结果网段,最低位为1-255,将其转换成整数
	        var ipLeftNumber = Number(subNetResult[0])*256*256*256 + Number(subNetResult[1])*256*256 + Number(subNetResult[2])*256 +Number(1);
	        var ipRightNumber = Number(subNetResult[0])*256*256*256 + Number(subNetResult[1])*256*256 + Number(subNetResult[2])*256 +Number(255);
//	        console.log('ipLeftNumber',ipLeftNumber);
//	        console.log('ipRightNumber',ipRightNumber);
	        if($("#addValue").val() != ""){
	        	//如果输入IP,判断在不在范围内
	        	if (resultAddValueNumber < ipLeftNumber || resultAddValueNumber > ipRightNumber){
		        	console.log('超出IP网段范围');
		        }else{
		        	console.log('成功');
		        }
	        } 
		})
         
	</script>
</html>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值