当前位置:文档之家› 检查IPV6地址例子

检查IPV6地址例子

<script>
//判断ipv6地址是否为多播地址
function webNetIsIpV6MCast(hostIp)
{
var Ipv6Mc = hostIp.substring(0,hostIp.indexOf(":"));
if((parseInt(Ipv6Mc,16) & 0xff00) == 0xff00)
return true;
else
return false;
}
//判断该ipV6Host是不是false ,因为false通常代表IP ANY hostIp位标准八段式function webNetIsIpV6Any(hostIp)
{
var Ipv6add0 = hostIp.substring(0,4);
var Ipv6add1 = hostIp.substring(5,9);
var Ipv6add2 = hostIp.substring(10,14);
var Ipv6add3 = hostIp.substring(15,19);
var Ipv6add4 = hostIp.substring(20,24);
var Ipv6add5 = hostIp.substring(25,29);
var Ipv6add6 = hostIp.substring(30,34);
var Ipv6add7 = hostIp.substring(35,39);
if(parseInt(Ipv6add0) == 0 && parseInt(Ipv6add1) == 0 &&
parseInt(Ipv6add2) == 0 && parseInt(Ipv6add3) == 0 &&
parseInt(Ipv6add4) == 0 && parseInt(Ipv6add5) == 0 &&
parseInt(Ipv6add6) == 0 && parseInt(Ipv6add7) == 0){
return true;
}
else {
return false;
}
}
//判断该ipV6Host是不是环回地址 hostIp位标准八段式
function webNetIsIpV6LoopBack(hostIp)
{
var Ipv6add0 = hostIp.substring(0,4);
var Ipv6add1 = hostIp.substring(5,9);
var Ipv6add2 = hostIp.substring(10,14);
var Ipv6add3 = hostIp.substring(15,19);
var Ipv6add4 = hostIp.substring(20,24);
var Ipv6add5 = hostIp.substring(25,29);
var Ipv6add6 = hostIp.substring(30,34);
var Ipv6add7 = hostIp.substring(35,39);
if(parseInt(Ipv6add0) == 0 && parseInt(Ipv6add1) == 0 &&
parseInt(Ipv6add2) == 0 && parseInt(Ipv6add3) == 0 &&
parseInt(Ipv6add4) == 0 && parseInt(Ipv6add5) == 0 &&
parseInt(Ipv6add6) == 0 && parseInt(Ipv6add7) == 1){
return true;
}
else {
return false;
}
}
function transitIp(ipaddr)//将IPV6地址补全
{
var ipaddress = ipaddr.split("/");
var ipaddrs = ipaddress[0].split(":");
if(ipaddrs.length<8)
{
var count = 0;
for(var i=0;i<ipaddrs.length;i++)
{
if(ipaddrs[i]=="")
{
if(count==1)
{
ipaddrs[i] = addZero(4);
continue;
}
ipaddrs[i] = addZero((9-ipaddrs.length)*4);
count++;
}
else
{
ipaddrs[i] += ":";
}
}
}
else if(ipaddrs.length==8)
{
for(var i=0;i<8;i++)
{
ipaddrs[i] += ":";
}
}
return initaddr(ipaddrs);//获得了ip地址的完整字符串
}
function addZero(num)
{
var zerostr = "";
for(var i=1;i<num+1;i++)
{
zerostr+="0";
if(i%4==0)
{
zerostr+=":";
}
}
return zerostr;
}
function initaddr(ipaddrs)
{
var iparray ="";
for(var i=0;i<ipaddrs.length;i++)
{
iparray+=ipaddrs[i];
}
if(iparray.charAt(iparray.length-1)==':')
{
iparray = iparray.substr(0,iparray.length-1);
}
return iparray;
}
function isNull( str ){
if ( str == "" ) return true;
var regu = "^[ ]+$";
var re = new RegExp(regu);
return re.test(str);
}
function isIPv6(str)
{
var check;
var Ipv6Pool = str.substring(0,str.indexOf(":"));
if (isNull(str) || isNull(Ipv6Pool))
{
alert('不能为空');
return false;
}
check = str.match(/:/g).length<=7
&&/::/.test(str)
?/^([\da-f]{0,4}(:|::)){1,6}[\da-f]{0,4}$/i.test(str) :/^([\da-f]{1,4}:){7}[\da-f]{1,4}$/i.test(str);
/*
if(!webNetIsIpV6Any(ipv6) &&
!webNetIsIpV6MCast(ipv6) &&
!webNetIsIpV6LoopBack(ipv6))
{
alert("true");
}
alert("false");
*/
return check;
}
</script>
<input id=txt><input type=button value=checkIPv6 onclick=alert(isIPv6(txt.value))>。

相关主题