1.前言

首先学习IP地址划分类别:

python 根据子网掩码计算 ip 根据子网掩码算ip范围_子网掩码


范围上划分有些要注意的:

A类 从1.0.0.0 到126.255.255.255

B类 从128.0.0.0到191.255.255.255

C类 从192.0.0.0到223.255.255.255

其中127.x.x.x段地址空间是被保留的回环地址

IP地址包含 网络地址+主机地址,即IP地址=网络地址+主机地址

2.子网掩码定义

子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。若位模式中的某位为‘1’,则对应IP地址中的某位为网络地址中的一位,否则为主机号中的一位。
子网掩码:32位,值1对应网络位; 值0对于主机位。

3.根据IP地址和子网掩码求 网络地址 和 广播地址

有如下3个要点:

3.1 IP地址和子网掩码进行与运算,结果是网络地址(即主机号全0是网络地址)
3.2 将运算结果中的网络地址不变,主机地址变为1,结果就是广播地址
3.2 主机的数量=2^二进制位数的主机-2
理解:
由于子网掩码是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。当位上值位“1”时,表示指示的是IP中的网络号;反之,掩码位上的值为“0”,指示的为IP中的主机号。所以当两者二进制相与操作时,IP地址的网络号位不变,主机号位全为0——这不就是网络地址吗!
其次,第二、三点很好理解:在网络地址的基础上主机地址全变为1——就是广播地址。主机数目位=2^主机位数-2,减去的是广播地址和网络地址。

ip段/数字-如192.168.0.1/24是什么意思?

后面这个数字标示了我们的网络号的位数,也就是子网掩码中前多少号为1
129.168.1.1 /24 这个24就是告诉我们网络号是24位,也就是
子网掩码是:11111111 11111111 11111111 00000000
即:255.255.255.0

4.子网划分

4.1 等长子网划分
假设已分配C类网198.28.61.0,且已确定需要4个子
网,每个子网最多25台机器;
关键:确定子网位数
由于2^5 -2=30>25,所以主机位数必须位5位,则在这个局域网剩下8-5=3位用来划分子网,可以划分2^3=8,足够题目中的4个子网了。所以划分如下:
备注:RFC950规定:不允许使用全0或全1的子网

第4字节

子网号

0001 0000

198.28.61.32

0010 0000

198.28.61.64

0011 0000

198.28.61.96

0100 0000

198.28.61.128

0101 0000

198.28.61.160

0110 0000

198.28.61.192

分出6个子网,任选其中的4个使用,如选:
子网1:网络号198.28.61.32,可分配IP范围198.28.61.33~198.28.61.62
子网2:网络号198.28.61.64,可分配IP范围
198.28.61.65~198.28.61.94
子网3:网络号198.28.61.96,可分配IP范围
198.28.61.97~198.28.61.126
子网4:网络号198.28.61.128,可分IP范围
198.28.61.129~198.28.61.158

4.2 变长子网划分

假设已给C类网址202.18.6.0,设计符合下列要求的子网划分 方案:

① 4个网络,每个最多26台主机

② 3个网络,每个最多10台主机

③ 4个点到点串行链路

划分方法:采用不等长子网掩码。先按最多主机数选择符合 要求的子网位,然后对子网再继续划分。

python 根据子网掩码计算 ip 根据子网掩码算ip范围_IP_02


在①方案中:按上题的分析:2^5 -2=30>25,所以主机位可选5位,子网位数为:3。

②方案中一级子网划分如上图:从中选出4个;以此类推,10台主机,得到主机位数可为4,子网位数为4。二级划分选出3个子网.最终结果如上。(备注:没有使用全0或全1的子网)

参考:子网掩码详解