从子网掩码计算IP范围

dig*_*123 16 ip networking tcp subnet

说,我有一个255.255.255.242的子网,我在该子网内有一个已知的IP,如192.168.1.101.

现在我计算IP范围的方式是这样的:

在子网掩码中,找到不是255的第一个八位字节.在我的例子中,它是第4个八位字节,它的242.所以取256并减去242,这给了我们14.所以我们现在知道这些网络,192.168 .1.x网络,都有14的范围.所以只需开始列出它们......

192.168.1.0
192.168.1.14
192.168.1.28
....42
....56
....70
....84
....98
....112
Run Code Online (Sandbox Code Playgroud)

在这里我们可以停下来 我的地址192.168.1.101属于.98网络..98包含从192.168.1.98到192.168.1.111的所有IP地址,因为我们知道192.168.1.112启动下一个网络.

我想确认一下,这是否是正确和最简单的过程.

Joe*_*Joe 37

网络掩码是一系列1位.这些位必须是顺序的,没有0个间隙.使用1位的任何内容都是网络的一部分,剩下的任何内容都对该网络中的主机分配有效.255.255.255.224有27"1"位,这意味着它是一个/ 27网络.

要计算此权限,您需要将IP转换为数字表示.例如,255.255.255.224是11111111 11111111 11111111 11100000,即4294967264. 192.168.1.101是3232235877(11000000 10101000 00000001 01100101).

如果您使用IP并按位并使用网络掩码,则会为您提供网络地址.这是范围的底端:

11111111 11111111 11111111 11100000  (mask)
11000000 10101000 00000001 01100101  (ip)
-----------------------------------
11000000 10101000 00000001 01100000  = 192.168.1.96  (network address)
Run Code Online (Sandbox Code Playgroud)

掩码的补码(按位NOT)为您提供范围的大小:

00000000 00000000 00000000 00011111  = 31
Run Code Online (Sandbox Code Playgroud)

因此,该IP的范围在192.168.1.96-192.168.1.127之间.(127 = 96 + 31)