JavaScript判断两个IP地址是否在同一个网段的实现思路

作者:半夏

时间:2026-10-27

浏览:614

本文介绍如何使用JavaScript判断两个IP地址是否处于同一网段。核心思路是将IP地址与子网掩码分别进行按位与运算,提取网络号并进行比较。通过逐段解析IP和掩码,计算并拼接结果,若网络号一致则判定为同一子网。代码包含参数校验及详细的逻辑实现,适用于前端网络配置验证场景。

文章目录

判断IP同网段的基本原理

判断两个IP地址是否属于同一网段的基本原理是:将两个IP地址分别与子网掩码进行按位与(AND)运算,从而提取出网络号。如果计算得到的网络号相同,则说明这两个IP地址位于同一个子网内;反之,则不在同一子网。

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

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章