JavaScript判断两个IP地址是否在同一个网段的实现思路
作者:半夏时间:2026-10-27 19:36:41浏览:615
本文介绍如何使用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;
}
}作者最新文章
JavaScript闭包与类(Class)的区别及适用场景对比
2026-11-05 15:48:57
JavaScript入门要学ES6吗?let与箭头函数等新特性解析
2026-11-05 14:49:16
JavaScript 8种数据类型详解:基本类型与引用类型的区别
2026-11-05 14:25:15
怎么在JavaScript中使用async/await优化Ajax异步流程
2026-11-05 13:56:15
JavaScript replace回调函数实现动态正则替换逻辑
2026-11-05 13:52:13
