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 地址的理论及其代表的含义(这需要更多文章来介绍),但希望这篇文章能够有所帮助并且易于理解。

2025-03-31 08:49:27,208 INFO client.RMProxy (RMProxy.java:createRMProxy(98)) - Connecting to ResourceManager at /0.0.0.0:8032 2025-03-31 08:49:30,367 INFO ipc.Client (Client.java:handleConnectionFailure(860)) - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2025-03-31 08:49:33,410 INFO ipc.Client (Client.java:handleConnectionFailure(860)) - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2025-03-31 08:49:36,447 INFO ipc.Client (Client.java:handleConnectionFailure(860)) - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2025-03-31 08:49:39,474 INFO ipc.Client (Client.java:handleConnectionFailure(860)) - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 3 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2025-03-31 08:49:42,509 INFO ipc.Client (Client.java:handleConnectionFailure(860)) - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 4 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2025-03-31 08:49:45,542 INFO ipc.Client (Client.java:handleConnectionFailure(860)) - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 5 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2025-03-31 08:49:48,582 INFO ipc.Client (Client.java:handleConnectionFailure(860)) - Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 6 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2025-03-31 08:49:51,630 INFO ipc.Client (Client.java:handleConnectionFail
最新发布
04-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qingmu2024

您的鼓励是我最大的创作动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值