javascript实现验证IP地址等相关信息代码
本代码是从个人项目中提取出来的,应该可以算的上是相当全面有效的IP相关信息的验证代码了,用来前端验证
/********************/
/*判断IP地址是否合法*/
varjudgeIpIsLegal=function(ipAddr){
varregIps=/^(((25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|[0-9])\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|[0-9]))$/;
returnregIps.test(ipAddr);
}
/*IP地址转换为二进制字符串*/
/*例如:172.16.4.235-->10101100000100000000010011101011*/
varpraseIpToBinary=function(ipAddress){
varnumArray=ipAddress.split(".");
if(numArray.length!=4){
alert("输入的IP有误");
return;
}
varreturnIpStr="";
for(vari=0;i<4;i++){
varcurr_num=numArray[i];
varnumber_Bin=parseInt(curr_num);
number_Bin=number_Bin.toString(2);
variCount=8-number_Bin.length;
for(varj=0;j<iCount;j++){
number_Bin="0"+number_Bin;
}
returnIpStr+=number_Bin;
}
returnreturnIpStr;
}
/*判断子网掩码是否合法*/
/*子网掩码必须是1和0组成的连续的一段如11110000*/
varjudgeSubnetMask=function(ipAddress){
varbinaryIpString=praseIpToBinary(ipAddress).toString();
varsubIndex=binaryIpString.lastIndexOf("1")+1;
varfrontHalf=binaryIpString.substring(0,subIndex);
varbackHalf=binaryIpString.substring(subIndex);
if(frontHalf.indexOf("0")!=-1||backHalf.indexOf("1")!=-1){
returnfalse;
}else{
returntrue;
}
}
/*两个IP地址做与操作返回结果*/
/*该功能主要用来实现IP地址和子网掩码相与,获取当前IP地址的IP地址段*/
/*以此来验证输入的网关地址是否合法*/
vargetIPsAndResult=function(ipAddr1,ipAddr2){
varipArray1=ipAddr1.split(".");
varipArray2=ipAddr2.split(".");
varreturnResult="";
if(ipArray1.length!=4||ipArray2.length!=4){
alert("输入的IP有误");
return;
}
for(vari=0;i<4;i++){
varnumber1=parseInt(ipArray1[i]);
varnumber2=parseInt(ipArray2[i]);
returnResult+=number1&number2;
if(i<3){
returnResult+=".";
}
}
returnreturnResult;
}
/*判断网关地址是否合法*/
varjudgeGatewayResult=function(ipAddr,subnetMask,gateway){
varandResult1=getIPsAndResult(ipAddr,subnetMask);
varandResult2=getIPsAndResult(gateway,subnetMask);
if(andResult1==andResult2){
returntrue;
}else{
returnfalse;
}
}
以上所述就是本文的全部内容了,希望大家能够喜欢。