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

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

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

使用的方法

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

  • 生成IPv4网络地址

  • 生成IPv6网络地址

  • 访问CIDR地址的IP地址

方法1:IPv4Network

算法(步骤)

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

  • 使用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地址作为参数给出,遍历结果并打印所有IPv6地址。

示例

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

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

输出

执行以上程序后,将生成以下输出 −

以下是给定CIDR地址(12:3456:78:90ab:cd:ef11:23:30/125)中的IPv6地址
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:cd: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地址。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程