判斷兩個ip地址是否屬於同一個網段程式碼

antzone發表於2017-03-17

不清楚這個程式碼是否實用,不過還是和大家分享一下。如果想要了解程式碼的實現原理,還需要了解一下網路知識,這裡就不多介紹了,直接看程式碼,有興趣的可以自行分析,程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
/* 
* [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 < ilen ; i += 1){ 
    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; 
  } 
}

相關文章