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; } }
以上所述就是本文的全部内容了,希望大家能够喜欢。