以 ip 段 127.0.0.0/24
为例
IPv4 由 32 位二进制组成(最大地址为 255.255.255.255
),
24 代表子网掩码(255.255.255.0
)。
###计算 127.0.0.0/24
起始地址;
01111111.00000000.00000000.00000000 # 127.0.0.0
11111111.11111111.11111111.00000000 # 255.255.255.0
||
|| 逻辑与
\/
01111111.00000000.00000000.00000000 # 127.0.0.0,即网段的起始地址
将起始地址 127.0.0.0
转为整数值;
127.0.0.0
||
01111111.00000000.00000000.00000000
||
127 * pow(2, 24)
||
2130706432
###127.0.0.0/24
中的 IP 数
将掩码转为二进制可以表示为 11111111.11111111.11111111.00000000
,其中有 8 个 0,
取出 00000000
,将 0
改为 1
得到 11111111
,通过二进制计算可以得到:
11111111 == 255
也就是说 127.0.0.0/24
有 256(IP 从 0 开始计算) 个 IP,去除起始地址占用 1 个后,
结束地址的整数为起始地址 + 255
。
###结果
127.0.0.0/24
的整数范围是:[2130706432, 2130706432 + 255]
###python 解决方案
当然,如果你会 python,那么简单的几行代码就能帮你解决问题;