有个比较简单的演算法,/28掩码,掩码的最后一位对应数字是16,既0和16的倍数就是网段地址,如0,16,32,48等等,倍数减1的是广播地址,如15,31,47等等。在这些范围内的就是可用地址。至于有多少个子网,传统演算法是抛弃起始网段和结束网段,取中间的网段个数,支持cidr的话都是可用网段。一般可以看子网掩码向最后一个点分位后变长了几位,如/27,变长3位,3位二进位1转十进位是8,就是有8个子网。/28是变长4位,对应十进位16,就是16个子网。


IP和掩码进行32位的二进位与运算,得到的地址就是该IP的网路地址。与运算的特点是:全一才为一,有零就是零。

IP的二进位: 11000000 10101000 00001101 10101010

掩码的二进位: 11111111 11111111 11111111 11110000

与运算结果: 11000000 10101000 00001101 10100000

结果转换为十进位:192.168.13.160

该IP的网路地址是192.168.13.160


IP地址由网路前缀+主机号组成,斜线后边的数字就是网路前缀的位数。

网路地址可用「IP地址中网路前缀对应的位不变,主机号对应的位是全0」得出。

如192.168.13.170/28,前三个位元组加起来是24位,而网路前缀是28位,意味著第四个位元组的前四位也是网路前缀。我们要把第四个位元组拆开,170D=10101010B。取前28位,后四位为0

那么,网路地址为:192.168.13.10100000,也就是192.168.13.160。


通过掩码长度来速算IP地址数量

  • 一个网段里中有多少IP地址? = 2^(32-掩码长度),本例中2^(32-28) = 2^4 = 16,即/28掩码的网段有16个IP地址;接下来很容易定位到这个网段是192.168.13.160/28,网路号就是192.168.13.160
  • 拓展一下,一个掩码为/m的网段中包含多少掩码为/n的子网?= 2^(n-m),比如计算一个/18网段中包含多少个/24, 2^(24-18) = 2^6 = 64,即一个/18的网段中包含64个/24的子网。

希望对你有用。


170的二进位是10101010,掩码长度是28,ip每段8。所以划至1010 | 1010。网路地址是192.168.13.160


28位掩码为:255.255.255.240

则总的包涵256-240=16 个ip段也就是每16个化为一个网段

用可变长子网掩码直接找16的倍数最小的就是160,一下个是176,170恰好在这个网段中,

所以该ip的网路地址(开始位)就是:192.168.13.160

广播地址(结束位)是:192.168.13.175 (广播地址等于下一次的网路地址减1)

可用地址:192.168.13.161~174


推荐阅读:
相关文章