自学内容网 自学内容网

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)!