校正IP地址是否合法,JavaScript

來源:互聯網
上載者:User

<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> 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.