如何从IP地址和子网掩码判断该地址属于哪个网段?
需要给出2个参数:IP地址和子网掩码。
提问:192.168.0.101/26 所属网段是什么?
分析:
192.168开头的地址属于C类地址,默认掩码是255.255.255.0;默认是 /24位掩码;
但本例是26位掩码,说明掩码在C类地址的基础上向右移动了2位,也就是从主机位拿走了2位成为网络位。
为了便于计算,写为2进制:

用主机地址和网络掩码做"与"运算,其实就是把掩码位对应的主机位抄下来,其余位全归0。
计算结果:
1、192.168.0.101/26 归属192.168.0.64网段。
2、该网段是子网(因为从C类边界向右移动了2位,增加了网络数量)
3、全部的子网是:
192.168.0.0 192.168.0.64(本例IP归属网段) 192.168.0.128 192.168.0.192
提问:192.168.0.101/12 所属网段是什么?
计算:

经过以上运算得出了结论:192.168.0.101/12属于网段192.160.0.0/12。
上一个例子说192.168.0.0网段属于C类地址,这就相当于已经给出了默认的掩码 /24。
但现在已经是CIDR的时代,不再把IP归属于某"类"地址,也就不再有默认的掩码,若要确定掩码的边界,必须要明确给出掩码后缀,这就导致一个问题:虽然能判断出所属网段,但无法得知该网段是一个独立的网段(或是超网),还是上级网段划分的子网。
比如本例,192.168应属于C类网段,默认掩码是 /24,但 /12却又非C类网段的默认掩码。
那么这个网段到底是不是子网呢?
最直接的方法是询问网管这是不是子网。。。
或者,要给出另外2个条件才能判断是不是子网:
原始网络(上一级网络)的前缀长度
必须是等分子网(若是非等分子网,还是无法得出子网数量和范围)
现在给出这2个条件:
原始网络(上一级网络)的前缀长度是 /8
是等分子网
分析:
原始网络的前缀长度是 /8,现在的前缀长度是 /12,这就说明划分了子网,因为从主机位拿走了4位作为网络位,增加了子网的数量,192.168.0.101/12 属于众多子网之一。
因为从主机位拿走了4位作为网络位,可等分为16个子网,而且给出的条件也说明了的确是等分子网,这样就得出了16个子网的范围:

计算结果:
1、192.168.0.101/12属于192.160.0.0/12网段
2、该网段是子网(因为从/ 8向右移动了4位变为 /12,增加了网络数量)
3、上级网段的所有子网范围如下:
