要判断两个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是否在同一个网段,举两个例子。
以网段192.168.0.0为例:
子网掩码为255.255.255.0时,可用IP为192.168.0.1-192.168.0.254(255位广播地址)。
子网掩码为255.255.0.0时,可用IP为192.168.0.0-192.168.255.254。
以192.168.10.1和192.168.100.1为例:
子网掩码为255.255.255.0时,他们不在一个网段;
子网掩码为255.255.0.0时,他们在一个网段。
综上所述,多个IP地址是否在同一个网段以及该网段有多少两个可用的IP地址,由子网掩码决定。
IP和掩码一起使用,掩码限制了IP地址段的范围,也可以理解为子网的反问句,
也就是说,同一个IP地址有不同的掩码,网络段中的IP地址可能不同。网关是与您的IP地址相同子网中的任何其他可用IP地址,但通常是用作网关的隧道段的第一个或最后一个地址。网关的地址配置在路由器或其他三层设备上。
其作用是实现网络中不同网络段之间的正确互连,一般可以理解为通过网关接入Internet。
设置IP地址,子网掩码,网关的步骤如下:
1.打开“网络与共享中心”,找到已连接的网络,以本地连接为例,点击“本地连接”选项度数。
2.输入“本地连接”选项后,找到“属性”选项。
3.选择并打开properties选项以输入本地连接。
4.在“属性”选项中找到“Internet协议版本4(TCP/ipv4)”。
5.双击“Internetprotocolversion4(TCP/ipv4)”,进入修改IP地址、子网掩码、网关选项。