如何使用 Python 从 CIDR 地址生成 IP 地址?

pythonserver side programmingprogramming更新于 2024/1/7 14:43:00

在本文中,我们将学习如何从 CIDR 地址生成 IP 地址。

使用的方法

以下是完成此任务的各种方法 -

  • 生成 IPv4 网络地址

  • 生成 IPv6 网络地址

  • 访问 CIDR 地址的 IP 地址

方法 1:IPv4 网络

算法(步骤)

以下是执行所需任务要遵循的算法/步骤。 −

  • 使用 import 关键字导入 ipaddress 模块。

  • 使用 ipaddress 模块的 ip_network() 函数(返回地址的网络类型)从输入的 CIDR 地址(IPv4Network)获取 IP 地址

  • 使用 for 循环 遍历上述 IPv4 地址列表

  • 打印列表的当前 IPv4 地址

示例

以下程序从给定的 CIDR 地址返回 IPv4 地址列表 −

# 导入 ipaddress 模块
import ipaddress
# 从输入的 CIDR 地址(IPv4 网络地址)获取 IP 地址
netIpv4Address = ipaddress.ip_network('123.45.66.64/27')
print("以下是给定 CIDR 地址(123.45.66.64/27) 中的 IPv4 地址")
# 遍历上述 IPv4 地址列表
for i in netIpv4Address:
    # 打印当前 IPv4 地址
    print(i)

输出

执行时,上述程序将生成以下输出 -

以下是给定 CIDR 地址(123.45.66.64/27) 中的 IPv4 地址
123.45.66.64
123.45.66.65
123.45.66.66
123.45.66.67
123.45.66.68
123.45.66.69
123.45.66.70
123.45.66.71
123.45.66.72
123.45.66.73
123.45.66.74
123.45.66.75
123.45.66.76
123.45.66.77
123.45.66.78
123.45.66.79
123.45.66.80
123.45.66.81
123.45.66.82
123.45.66.83
123.45.66.84
123.45.66.85
123.45.66.86
123.45.66.87
123.45.66.88
123.45.66.89
123.45.66.90
123.45.66.91
123.45.66.92
123.45.66.93
123.45.66.94
123.45.66.95

方法 2:IPv6Network

将 IPv6 网络的 CIDR 地址作为参数提供给 ip_network() 函数,并通过遍历结果打印其所有 IPv6 网络。

示例

以下程序从给定的 CIDR 地址返回 IPv6 地址列表 −

# 导入 ipaddress 模块
import ipaddress
# 从输入的 CIDR 地址(IPv6 网络地址)获取 IP 地址
netIpv6Address = ipaddress.ip_network('12:3456:78:90ab:cd:ef11:23:30/125')
print("以下是给定 CIDR 中的 IPv6 地址Address(12:3456:78:90ab:cd:ef11:23:30/125)")
# 遍历上面的 Ipv6Address
for i in netIpv6Address:
    # 打印当前的 Ipv6Address
   	print(i)

输出

执行时,上述程序将生成以下输出 -

以下是给定 CIDR 地址中的 IPv6 地址(12:3456:78:90ab:cd:ef11:23:30/125)
12:3456:78:90ab:cd:ef11:23:30
12:3456:78:90ab:cd:ef11:23:31
12:3456:78:90ab:cd:ef11:23:32
12:3456:78:90ab:c d:ef11:23:33
12:3456:78:90ab:cd:ef11:23:34
12:3456:78:90ab:cd:ef11:23:35
12:3456:78:90ab:cd:ef11:23:36
12:3456:78:90ab:cd:ef11:23:37

方法3:访问 CIDR 地址的 IP 地址

我们可以通过获取与其对应的所有 IP 地址作为列表并使用 [] 运算符(即索引方法)访问列表元素来访问给定 CIDR 地址的 IP 地址。

示例

以下程序显示如何访问 CIDR 地址的 IP 地址 -

# 导入 ipaddress 模块
import ipaddress
# 从输入 CIDR 地址(IPv4 网络地址)获取 IP 地址
netIpv4Address = ipaddress.ip_network('123.45.66.64/27')
# 从结果列表中访问第一个 Ipv4Address
print("列表中的第一个 Ipv4Address:", netIpv4Address[0])

# 从结果中访问第二个 Ipv4Address列表
print("列表中的第二个 Ipv4Address:", netIpv4Address[1])

# 从结果列表中访问最后一个 Ipv4Address
print("列表中的最后一个 Ipv4Address:", netIpv4Address[-1])

输出

执行时,上述程序将生成以下输出 -

列表中的第一个 Ipv4Address: 123.45.66.64
列表中的第二个 Ipv4Address: 123.45.66.65
列表中的最后一个 Ipv4Address: 123.45.66.95

结论

本文教我们如何从提供的 CIDR 地址中提取每个 IP 地址。我们使用了两种方法,一种是获取所有 IPv4 地址,另一种是收集 IPv6 地址。我们还展示了如何在将 IP 地址转换为列表后使用 [] 运算符来访问它们。


相关文章