30 秒解释“192.168.0.0/24”中的“/24”
我现在工作中正在处理这类事务,起初对我来说(作为一个网络安全背景知识有限的人),这真的很不直观。
所以,我在这里尽量把它简化,讲给那些不太熟悉IP地址的人听。
单一IP地址
192.168.0.0
192.168.0.0就是一个单独的IP地址,仅此而已。
在IP地址后添加“/”和数字
192.168.0.0/32是一个IP地址范围。
192.168.0.0/31也是一个IP地址范围。
192.168.0.0/30同样是一个IP地址范围。
192.168.0.0/29还是一个IP地址范围。
192.168.0.0/28依旧是一个IP地址范围。
依此类推。
我们在“/”后面添加的数字取值范围是从0到32。
查找此范围内的IP地址
我们先来找出这个范围内IP地址的数量。
假设我们有192.168.0.0/30这个地址范围
IP地址数量 = 2 ^ (32 - 30)
也就是2 ^ 2 = 4
所以,这个范围内的IP地址就是192.168.0.0、192.168.0.1、192.168.0.2以及192.168.0.3。
再假设我们有192.168.0.0/29这个地址范围:
IP地址数量 = 2 ^ (32 - 29)
即2 ^ 3 = 8
那么,该范围内的IP地址就是192.168.0.0、192.168.0.1、192.168.0.2……192.168.0.7。
又假设我们有192.168.0.1/28这个地址范围:
IP地址数量 = 2 ^ (32 - 28)
也就是2 ^ 4 = 16
这样一来,其IP地址就是192.168.0.0、192.168.0.1、192.168.0.2……192.168.0.15。
需要注意的是——在我看来,这种表示法很奇怪,也不直观,但它在行业内应用广泛,所以我想我也没资格反对它吧。
使用Python查找IP地址范围
我们可以使用Python内置的ipaddress
模块来自动完成这项操作。
import ipaddress
x = list(ipaddress.ip_network('192.168.0.0/30', False))
from pprint import pprint
# 此范围内有4个IP地址
pprint(x)
'''
[IPv4Address('192.168.0.0'),
IPv4Address('192.168.0.1'),
IPv4Address('192.168.0.2'),
IPv4Address('192.168.0.3')]
'''
上述代码中,False
参数关闭了严格模式(开启严格模式会导致出错)。
import ipaddress
x = list(ipaddress.ip_network('192.168.0.0/28', False))
from pprint import pprint
# 此范围内有16个IP地址
pprint(x)
'''
[IPv4Address('192.168.0.0'),
IPv4Address('192.168.0.1'),
IPv4Address('192.168.0.2'),
IPv4Address('192.168.0.3'),
IPv4Address('192.168.0.4'),
IPv4Address('192.168.0.5'),
IPv4Address('192.168.0.6'),
IPv4Address('192.168.0.7'),
IPv4Address('192.168.0.8'),
IPv4Address('192.168.0.9'),
IPv4Address('192.168.0.10'),
IPv4Address('192.168.0.11'),
IPv4Address('192.168.0.12'),
IPv4Address('192.168.0.13'),
IPv4Address('192.168.0.14'),
IPv4Address('192.168.0.15')]
'''
对于192.168.0.0/24:
IP地址数量 = 2 ^ (32 - 24)
即2 ^ 8 = 256
import ipaddress
x = list(ipaddress.ip_network('192.168.0.0/24', False))
from pprint import pprint
pprint(x)
'''
[IPv4Address('192.168.0.0'),
IPv4Address('192.168.0.1'),
IPv4Address('192.168.0.2'),
IPv4Address('192.168.0.3'),
IPv4Address('192.168.0.4'),
......
......
......
IPv4Address('192.168.0.255'),
写在最后
我不会深入探讨 IP 地址的理论及其代表的含义(这需要更多文章来介绍),但希望这篇文章能够有所帮助并且易于理解。
原文地址:https://blog.csdn.net/Vampire_2017/article/details/143782508
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!