python通过子网掩码获得所有包含的ip 通过子网掩码计算ip_子网掩码

python通过子网掩码获得所有包含的ip 通过子网掩码计算ip_子网掩码_02

python通过子网掩码获得所有包含的ip 通过子网掩码计算ip_子网_03

下面使用实例来说明,IP与子网及子网掩码的关系。

  首先,我们用上图B类网络私有地址,172.16.0.0/16来详细分析IP,子网和子网掩码的关系.172.16.0.0/16 子网掩码:255.255.0.0  我们知道IP由32位字符组成,A类的网络地址网络上有8位,主机位有24位,B类网络地址网络上有16位,主机位上有16位,(/16)这里的16是由网络位组成,主机位可以计算出可用IP的主机数,公式是2ⁿ-2(N为主机位数),子网数是2ⁿ(N为借用的主机位数). 172.16.0.0/16 由此我们可以计算出B类网络的可用IP主机数为2的16次方-2=65536-2=65534个主机数,由前16位网络位开始,没有借用主机位,子网数为1.也就是说整个网段(172.16.0.0/16)下可用IP地址为65534个.(可用IP地址:172.168.0.1--172.168.255.254)我不需要使用这么多网络IP,在14个部门的需求下,单个部门只需要支持1000个IP 足够使用需求了,如何划分呢?2的10次方为1024,也就是说保留10位主机位就够用了,32-10=22.那么将网段以172.16.0.0/22列出,子网掩码是多少呢?二进制的32位地址表中从24位借了数1,从23位上借了数2,255-3=252,换算成:255.255.252.0 16位的主机位上被占用了6位,那么子网数为2的6次方为64个子网,在B类172.16.0.0/16的网段中,以172.16.0.0/22分出了64个更小一点的网段,172.16.0.0/22,可用网络IP数为2的10次方-2=1022个.该网段可用地址:172.16.0.1--172.16.3.254,子网地址:172.16.0.0(主机位全为0),广播地址:172.16.3.255(主机位全为1)。有个问题IP为什么会是这样计算出来呢?笨鸟先飞的方法,子网掩码决定了这个网络IP的划分和详细的具体数量。255.255.252.0网络位有22位,主机位有10位,点分十进制每8个位为一个掩码分区,因此后8位的主机位用不着理会,第三个分区里的8个位中,可用的主机位只有2位,分别是24位上的1,23位上的2,第三个分区的网段数从0开始(24位为0,23位为0),依次是1(24为1,23位为0 )2(24位为0,23位为2)3(24位为1,23位为2),会出现4吗?出现4是网段的下一跳,分出第二个子网段,(24位上为0,23位上为0,22位上为4)22位不为主机位,所以依然记为0,172.16.4.0/22 可用IP地址:172.16.4.1--172.16.7.254 子网地址:172.16.4.0,广播地址:172.16.7.255,依次向下,该例中有14个部门的需求,那么最后一个网段是,172.16.52.1-172.16.55.254.