<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题页</title>
<script language="javascript" type="text/javascript">
/*
计算可用IP段
*/
function getIPs()
{
var zjip=document.getElementById("zjip");
var zjdz=document.getElementById("zjdz");
var ymws=document.getElementById("ymws");
if(validateIP(zjip.value))
{
if(validateMask(parseInt(ymws.value,10)))
{
//显示主机IP得二进制
var ipaddress = zjip.value.split(".");
var intipaddress=new Array(4);
intipaddress[0]= Number(ipaddress[0]);
intipaddress[1]= Number(ipaddress[1]);
intipaddress[2]= Number(ipaddress[2]);
intipaddress[3]= Number(ipaddress[3]);
var zjip_e=left0(intipaddress[0].toString(2))+left0(intipaddress[1].toString(2))+left0(intipaddress[2].toString(2))+left0(intipaddress[3].toString(2));
zjdz.innerHTML=zjip_e;
//显示子网掩码
var ym=maskNum(parseInt(ymws.value));
zwym.innerHTML=ym;
zwdz.innerHTML=getzwdz(zjip_e,ym);
//起始IP
var qsip1=left0((parseInt(zwdz.innerHTML.substr(0,8),2)).toString(2));
var qsip2=left0((parseInt(zwdz.innerHTML.substr(8,8),2)).toString(2));
var qsip3=left0((parseInt(zwdz.innerHTML.substr(16,8),2)).toString(2));
var qsip4=left0((parseInt(zwdz.innerHTML.substr(24,8),2)+1).toString(2));
IP1.innerHTML=parseInt(qsip1,2).toString(10)+"."+parseInt(qsip2,2).toString(10)+"."+parseInt(qsip3,2).toString(10)+"."+parseInt(qsip4,2).toString(10);
var gb=gbdz(zwdz.innerHTML,ym);
var zzip1=left0((parseInt(gb.substr(0,8),2)).toString(2));
var zzip2=left0((parseInt(gb.substr(8,8),2)).toString(2));
var zzip3=left0((parseInt(gb.substr(16,8),2)).toString(2));
var zzip4=left0((parseInt(gb.substr(24,8),2)-1).toString(2));
IP2.innerHTML=parseInt(zzip1,2).toString(10)+"."+parseInt(zzip2,2).toString(10)+"."+parseInt(zzip3,2).toString(10)+"."+parseInt(zzip4,2).toString(10);
}
else
{
alert('掩码位数是不大于32的正整数!');
}
}
else
{
alert('请输入正确得IP地址!');
}
}
function getzwdz(strZJ,strYM)
{
var i=0;
var zwdz="";
while(i!=32)
{
if(strZJ.substr(i,1)==strYM.substr(i,1)&&strZJ.substr(i,1)=="1")
{
zwdz=zwdz+"1";
}
else
{
zwdz=zwdz+"0";
}
i=i+1;
}
return zwdz;
}
function gbdz(strZW,strYM)
{
var i=0;
var gbdz="";
while(i!=32)
{
if(strZW.substr(i,1)==strYM.substr(i,1))
{
gbdz=gbdz+"1";
}
else
{
gbdz=gbdz+"0";
}
i=i+1;
}
return gbdz;
}
function left0(num)
{
while(num.length!=8)
{
num="0"+num;
}
return num;
}
/*
验证主机IP是否合法
*/
function validateIP(strIP)
{
var re=/^(/d+)/.(/d+)/.(/d+)/.(/d+)$/g
if(re.test(strIP))
{
if( RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true;
}
return false;
}
/*
验证掩码位数是否合法
*/
function validateMask(intNum)
{
if(intNum>0&&intNum<33)
return true;
else
return false;
}
/*
计算子网掩码
*/
function maskNum(num)
{
var mask="";
while(mask.length!=num)
{
mask="1"+mask;
}
while(mask.length!=32)
{
mask=mask+"0";
}
return mask;
}
</script>
</head>
<body>
主 机 IP:<input id="zjip" type="text" /><br />
<br />
掩码位数:<input id="ymws" type="text" /><br />
<br />
<input id="Button1" type="button" value="button" οnclick="getIPs()" /><br />
<br />
主机地址:<label id="zjdz"></label><br />
子网掩码:<label id="zwym"></label><br />
子网地址:<label id="zwdz"></label><br />
可用IP:<label id="IP1"></label>到<label id="IP2"></label>
</body>
</html>