javascript判断两个IP地址是否在同一个网段的实现思路
1个回答
展开全部
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
<
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;
}
}
要判断两个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
<
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;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询