javascript實(shí)現(xiàn)驗(yàn)證IP地址等相關(guān)信息代碼
本代碼是從個(gè)人項(xiàng)目中提取出來(lái)的,應(yīng)該可以算的上是相當(dāng)全面有效的IP相關(guān)信息的驗(yàn)證代碼了,用來(lái)前端驗(yàn)證
/* ****************** */ /* 判斷IP地址是否合法 */ var judgeIpIsLegal = function(ipAddr){ var regIps = /^(((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]))$/; return regIps.test(ipAddr); } /* IP地址轉(zhuǎn)換為二進(jìn)制字符串 */ /* 例如:172.16.4.235 --> 10101100000100000000010011101011 */ var praseIpToBinary = function(ipAddress){ var numArray = ipAddress.split("."); if(numArray.length != 4){ alert("輸入的IP有誤"); return; } var returnIpStr = ""; for (var i = 0; i < 4; i++) { var curr_num = numArray[i]; var number_Bin = parseInt(curr_num); number_Bin = number_Bin.toString(2); var iCount = 8-number_Bin.length; for (var j = 0; j < iCount; j++) { number_Bin = "0"+number_Bin; } returnIpStr += number_Bin; } return returnIpStr; } /* 判斷子網(wǎng)掩碼是否合法 */ /* 子網(wǎng)掩碼必須是 1 和 0組成的連續(xù)的一段 如 11110000 */ var judgeSubnetMask = function(ipAddress){ var binaryIpString = praseIpToBinary(ipAddress).toString(); var subIndex = binaryIpString.lastIndexOf("1")+1; var frontHalf = binaryIpString.substring(0,subIndex); var backHalf = binaryIpString.substring(subIndex); if(frontHalf.indexOf("0") != -1 || backHalf.indexOf("1") != -1){ return false; }else{ return true; } } /* 兩個(gè)IP地址做 與 操作 返回結(jié)果 */ /* 該功能主要用來(lái)實(shí)現(xiàn) IP地址和子網(wǎng)掩碼 相與,獲取當(dāng)前IP地址的IP地址段 */ /* 以此來(lái)驗(yàn)證輸入的網(wǎng)關(guān)地址是否合法 */ var getIPsAndResult = function(ipAddr1,ipAddr2){ var ipArray1 = ipAddr1.split("."); var ipArray2 = ipAddr2.split("."); var returnResult = ""; if(ipArray1.length != 4 || ipArray2.length != 4 ){ alert("輸入的IP有誤"); return; } for (var i = 0; i < 4; i++) { var number1 = parseInt(ipArray1[i]); var number2 = parseInt(ipArray2[i]); returnResult += number1&number2; if(i<3){ returnResult += "."; } } return returnResult; } /* 判斷網(wǎng)關(guān)地址是否合法 */ var judgeGatewayResult = function(ipAddr,subnetMask,gateway){ var andResult1 = getIPsAndResult(ipAddr,subnetMask); var andResult2 = getIPsAndResult(gateway,subnetMask); if(andResult1 == andResult2){ return true; }else{ return false; } }
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- jsp獲取客戶(hù)端IP地址的方法
- JSP如何獲取客戶(hù)端真實(shí)IP地址
- JS獲取客戶(hù)端IP地址、MAC和主機(jī)名的7個(gè)方法匯總
- js獲取客戶(hù)端網(wǎng)卡的IP地址、MAC地址
- 獲取客戶(hù)端網(wǎng)卡MAC地址和IP地址實(shí)現(xiàn)JS代碼
- js針對(duì)ip地址、子網(wǎng)掩碼、網(wǎng)關(guān)的邏輯性判斷
- javascript使用正則表達(dá)式檢測(cè)IP地址
- nodejs獲取本機(jī)內(nèi)網(wǎng)和外網(wǎng)ip地址的實(shí)現(xiàn)代碼
- JS簡(jiǎn)單獲取客戶(hù)端IP地址的方法【調(diào)用搜狐接口】
相關(guān)文章
javascript中Date對(duì)象應(yīng)用之簡(jiǎn)易日歷實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了javascript中Date對(duì)象應(yīng)用之簡(jiǎn)易日歷實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-07-07javascript圖片相似度算法實(shí)現(xiàn) js實(shí)現(xiàn)直方圖和向量算法
這篇文章主要介紹了javascript實(shí)現(xiàn)圖片相似度算法,大家參考使用吧2014-01-01Bootstarp在pycharm中的安裝及簡(jiǎn)單的使用方法
這篇文章主要介紹了Bootstarp在pycharm中的安裝及簡(jiǎn)單的使用方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04JS動(dòng)畫(huà)效果打開(kāi)、關(guān)閉層的實(shí)現(xiàn)方法
這篇文章主要介紹了JS動(dòng)畫(huà)效果打開(kāi)、關(guān)閉層的實(shí)現(xiàn)方法,可實(shí)現(xiàn)js控制層從中心位置打開(kāi)與關(guān)閉的功能,涉及javascript操作頁(yè)面元素的相關(guān)技巧,需要的朋友可以參考下2015-05-05javascript圖像處理—邊緣梯度計(jì)算函數(shù)
上一篇文章,我們講解了圖像處理中的膨脹和腐蝕函數(shù),這篇文章將做邊緣梯度計(jì)算函數(shù),感興趣的朋友可以了解下2013-01-01JavaScript和ActionScript的交互實(shí)現(xiàn)代碼
JavaScript和ActionScript的交互實(shí)現(xiàn)代碼,需要js與flash交互的朋友可以學(xué)習(xí)下。2010-08-08正則表達(dá)式刪除JavaScript代碼中的空格、注釋和換行符
這篇文章主要介紹了正則表達(dá)式刪除JavaScript代碼中的空格、注釋和換行符,需要的朋友可以參考下2023-12-12