首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

验证IP合法性解决办法

2012-03-06 
验证IP合法性以下代码对类似192.1.2.1可以验证,但对星号如192.3.3.*如何实现呢,请高手帮忙functionCheckIP

验证IP合法性
以下代码对类似192.1.2.1可以验证,但对星号如192.3.3.*如何实现呢,请高手帮忙
  function     CheckIP(){    
                 
                    str=document.all.IPPattern.value;    
                    str       =       str.split( "; ");    
                    for(var       i=0;i <str.length;i++)    
                    {    
                                   
                                    if(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.test(str[i])==true)    
                                    {    
                                                    window.alert( '错误的IP地址格式 ');    
                                                    return;  
                                    }  
                               
                                    if(RegExp.$1 <1   ||RegExp.$1> 254||RegExp.$2 <0||RegExp.$2> 254||RegExp.$3 <0||RegExp.$3> 254||RegExp.$4 <1||RegExp.$4> 254)    
                                    {    
                                                    window.alert( '错误的IP地址 ');    
                                                    return;    
                                    }
                                   
                    }    
                   
                    document.forms[0].submit();
    }

[解决办法]
function ac(str){
//alert( '1 ')
if(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.((\d{1,3}|\*))$/.test(str)==true)
{
//window.alert( '??的IP地址格式 ');
//return;
}else{


window.alert( '??的IP地址格式 ');
return;
}

if((RegExp.$1 <1 ||RegExp.$1> 254||RegExp.$2 <0||RegExp.$2> 254||RegExp.$3 <0||RegExp.$3> 254) || (RegExp.$4 != '* ' && (RegExp.$4 <0||RegExp.$4> 254)) )
{
window.alert( '??的IP地址 ');
return;
//}

}
alert( "ok ")
}
ac( '192.3.3.* ')
ac( '192.3.3.1 ')
ac( '192.3.3.333 ')
[解决办法]
验证IP地址尽量不要用正则.

function checkIP(ipstr)
{
var flag = true;
var arr = ipstr.split( ". ");
if(arr.length!=4)return false;
for(var i=0;i <arr.length;i++)
{
if(!isNaN(arr[i]))
{
if(i==3 && arr[i]== "* ")break;
flag = false;
break;
}
else
{
if(parseInt(arr[i])> 255 || parseInt(arr[i]) <0)
{
flag = false;
break;
}
}
}
return flag;
}
[解决办法]
<script language= "JavaScript ">
<!--
/*
函数名: chkIP
功 能: 校验IP地址是否合法,并检查IP地址类型.
参 数: ###.###.###.### 格式的IP字符串
返回值: 整数,意义见注释
日 期: 2006-7-19
作 者: 梅雪香(meixx)
*/
function chkIP(ipStr){
//参数格式校验 成功继续,失败返回-1
ipStr = ipStr.replace(/\s/g, " ");
var reg = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
if(reg.test(ipStr) == false){
return -1;
}
//ip地址合法性校验 成功继续 ,失败返回-2
var arr = ipStr.split( ". ");
for(var i=0;i <4;i++){
arr[i] = parseInt(arr[i],10);
if(parseInt(arr[i],10) > 255)
return -2;
}
var ip = arr.join( ". ");
//返回IP地址的类型 包括:
//异常:0 A类:1 B类:2 C类:3 D类:4 E类:5 A类私有:6 B类私有:7 C类私有:8 本机IP:9 广播地址:10
//A类子网掩码:11 B类子网掩码:12 C类子网掩码:13
var retVal = 0;
var n = arr[0];

if(ip == "255.255.255.255 ")retVal = 10;
else if(ip == "255.255.255.0 " ) retVal = 13;
else if(ip == "255.255.0.0 ") retVal = 12;
else if(ip == "255.0.0.0 ") retVal = 11;
else if(ip == "0.0.0.0 " || ip == "127.0.0.1 ") retVal = 9;
else if(n <= 126)retVal = (n == 10 ? 6 : 1);
else if(n <= 191)retVal = (n == 172 ? 7 : 2);
else if(n <= 223)retVal = (n == 192 ? 8 : 3);
else if(n <= 239)retVal = 4;
else if(n <= 255)retVal = 5;
else ;
return retVal;
}
document.write(chkIP( "11.65.96.1 ") + " <br> ");
document.write(chkIP( "130.65.96.1 ") + " <br> ");
document.write(chkIP( "210.65.96.1 ") + " <br> ");
document.write(chkIP( "234.65.96.1 ") + " <br> ");
document.write(chkIP( "251.65.96.1 ") + " <br> ");
document.write(chkIP( "10.65.96.1 ") + " <br> ");
document.write(chkIP( "172.65.96.1 ") + " <br> ");
document.write(chkIP( "192.65.96.1 ") + " <br> ");
document.write(chkIP( "0.0.0.0 ") + " <br> ");
document.write(chkIP( "127.0.0.1 ") + " <br> ");
document.write(chkIP( "255.255.255.255 ") + " <br> ");
document.write(chkIP( "255.0.0.0 ") + " <br> ");
document.write(chkIP( "255.255.0.0 ") + " <br> ");


document.write(chkIP( "255.255.255.0 ") + " <br> ");
document.write(chkIP( "255.255.256.0 ") + " <br> ");
document.write(chkIP( "255.sd5.256.0 ") + " <br> ");
//-->
</script>
[解决办法]
高手真多呀
[解决办法]
HTTP://www.ebigear.com/Fund/PlayNews.php?NewsID=29964&ID=285885

热点排行
Bad Request.