IPV4、IPV6地址正则HTA测试工具

1、IPV4地址

         网际协议版本4(Internet Protocol version 4,IPv4),又称互联网通信协议第四版,是网际协议开发过程中的第四个修订版本,也是此协议第一个被广泛部署的版本。

        IPv4地址的长度为32位,分为4段,每段8位。用十进制数字表示,每段数字范围为0~255,段与段之间用英文句点“.”隔开,比如:192.168.0.1。

2、IPV6地址

        IPv6地址有128位,通常写成8组,每组为四个十六进制数的形式。比如:0011:0000:0000:0000:0000:0000:0000:0011 。还可以采用零压缩法表示,如果几个连续段位的值都是0,那么这些0就可以简单的以“::”来表示,上述地址就可写成11::11。

3、HTA测试代码

<!DOCTYPE html>
<html>
<head>
<title>IP地址正则</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<style type="text/css">
body {
    height: 100%;
    width: 100%;
	margin: 0px;
	position: absolute;
	background-color: #dcecff;
}

div.head {
    width: 100%;
    height: 10%;
	
}

div.left,div.right{
    top: 10%;
    width: 49%;
    height: 10%;
    float: left;
}

div.head,div.left,div.right{
    outline: #c1cedd;
    outline-width: 2px;
    outline-style: outset;
}

div.head div,div.left div,div.right div{
	padding: 6px;
	margin-right: 6px;
}

div label{
    width: 100%;
    display: block;
}

div label{
    width: 100%;
    display: block;
}

div textarea {
    width: 100%;
	height: 300px;
	resize: vertical;
	position: relative;
	background-color: #ffffff;
}
</style>
<script type="">
$(document).ready(function(){

function is_ipv4(str){
	var reg = /^((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d).){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/;
	
	return reg.test(str);
}

function is_ipv6(str){
	var reg = /^((([\dA-Fa-f]{1,4}:){7}([\dA-Fa-f]{1,4}|:))|(([\dA-Fa-f]{1,4}:){6}(:[\dA-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([\dA-Fa-f]{1,4}:){5}(((:[\dA-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([\dA-Fa-f]{1,4}:){4}(((:[\dA-Fa-f]{1,4}){1,3})|((:[\dA-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([\dA-Fa-f]{1,4}:){3}(((:[\dA-Fa-f]{1,4}){1,4})|((:[\dA-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([\dA-Fa-f]{1,4}:){2}(((:[\dA-Fa-f]{1,4}){1,5})|((:[\dA-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([\dA-Fa-f]{1,4}:){1}(((:[\dA-Fa-f]{1,4}){1,6})|((:[\dA-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[\dA-Fa-f]{1,4}){1,7})|((:[\dA-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(.(25[0-5]2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.\+)?$/;
	
	return reg.test(str);
}

function ip_check(strInput, numType){
	var aInput = new Array();
	var objOutput = $("#text_output");
	var bCheck = false;
	var strOutput = objOutput.val();
	
	aInput = strInput.split("\n");
	for (var i = 0;i < aInput.length; ++i) 
	{ 
		strOutput += "[" + aInput[i] + "]";
		
		if("ipv4" == numType)
		{
			bCheck = is_ipv4(aInput[i]);
		}
		else if("ipv6" == numType)
		{
			bCheck = is_ipv6(aInput[i]);
		}
		
		if(true == bCheck)
		{
			strOutput += "合法\n";
		}
		else
		{
			strOutput += "非法\n";
		}
	}
	
	objOutput.val(strOutput);
}

$("#btn_ipv4").click(function(){
	ip_check($("#text_input").val(), "ipv4");
});

$("#btn_ipv6").click(function(){
	ip_check($("#text_input").val(), "ipv6");
});

$("#btn_clear_input").click(function(){
	$("#text_input").val("");
});

$("#btn_clear_output").click(function(){
	$("#text_output").val("");
});
});
</script>
</head>
<body>
	<div class="head">
		<div>
			<button type="button" id="btn_ipv4">IPV4测试</button>
			<button type="button" id="btn_ipv6">IPV6测试</button>
			<button type="button" id="btn_clear_input">清除输入</button>
			<button type="button" id="btn_clear_output">清除输出</button>
		</div>
	</div>
	<div class="left">
		<div>
			<label>输入:</label>
			<textarea id="text_input"></textarea>
		</div>
	</div>
	<div class="right">
		<div>
			<label>输出:</label>
			<textarea id="text_output"></textarea>
		</div>
	</div>
</body>
</html>

4、测试示例

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拥抱藍天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值