1)基本想法:
要判斷兩個IP位址是否在同一個網段,將它們的IP位址分別與子網路遮罩做與運算,得到的結果為網路號,如果網路號相同,就在同一子網,否則,不在同一子網。
2) 具體實作:
**
* [isEqualIPAddress 判斷兩個IP位址是否在同一個網段]
* @param {[String]} addr1 [位址一]
* @param {[String]} addr2 [位址二]
* @param {[String]} mask [子網路遮罩]
* @return {Boolean} [true or false]
*/
function isEqualIPAddress (addr1,addr2,mask){
if(!addr1 || !addr2 || !mask){
console.log("各參數不能為空參數不能為空參數不能為空參數");
return false;
}
var
res1 = [],
res2 = [];
addr1 = addr1.split(".");
addr2 = addr2.split(".");
mask = mask.split(".");
for(var i = 0,ilen = addr1.length; i res1.push(parseInt(addr1[i]) & parseInt(mask[i]));
res2.push(parseInt(addr2[i]) & parseInt(mask[i]));
}
if(res1.join(".") == res2.join(".")){
console.log("在同一個網段");
return true;
}else{
console.log("不在同一個網段");
return false;
}
}