如何使用python-netaddr获取子网和IPv4地址时的IP前缀?

Ami*_*Pal 5 python ip ip-address inetaddress python-2.7

我正在使用python-netaddr库来处理IP地址和子网.我阅读了netaddrd的完整文档:Netaddr文档.但没有找到解决我问题的方法.我有一个IP地址和子网我想通过使用它们获得该IP的前缀.这样我就可以打印所有进入子网的ip.

例如:

Ip Address: 192.0.2.0
Subnet Network: 255.255.255.0

It should return the prefix which is : 24
Run Code Online (Sandbox Code Playgroud)

Mar*_*ina 6

要获得24,您可以使用以下代码段

ip = IPNetwork('192.0.2.0/255.255.255.0')
print ip.prefixlen
Run Code Online (Sandbox Code Playgroud)

但是如果你想要子网中所有地址的列表,它更容易使用:

ip = IPNetwork('192.0.2.0/255.255.255.0')
list(ip)
Run Code Online (Sandbox Code Playgroud)