netaddr
-
基本操作
以ip地址对象表示单个IP地址
import netaddr ip=netaddr.IPAddress('192.0.2.1') ip.version //结果为4 -
表示网络和子网
IPNetwork对象用于表示接受CIDR前缀和网络掩码的子网,网络或vlan
import netaddr ip=netaddr.IPNetwork('192.168.1.0/24') print(ip.ip) print(ip.broadcast) print(ip.cidr) print(ip.netmask) //子网掩码结果:
192.168.1.0 192.168.1.255 192.168.1.254 255.255.255.0通过指定子网掩码来更改前缀长度
import netaddr ip=netaddr.IPNetwork('192.168.1.0/24') ip.netmask='255.255.0.0' print(ip.cidr)结果:
192.168.0.0/16 -
列出操作
如果将IPNetwork对象视为标准python列表对象,它将运行你访问单个IP地址对象的列表。这当然是虚幻的。在访问它们之前不会创建它们。
import netaddr ip=netaddr.IPNetwork('192.168.1.1/24') ip_list=list(ip) print(ip_list) print(len(ip_list))结果:

索引
print(ip[0]) print(ip[1]) print(ip[2]) ........192.168.1.0 192.168.1.1 192.168.1.2 ........切片
import netaddr ip=netaddr.IPNetwork('192.168.1.1/24') ip_list=list(ip[0:10]) print(len(ip_list)) print(ip_list[9])//超过9就报错,从0开始的哈结果:
10 192.168.1.9
Python netaddr库:IP地址和子网操作指南
Python的netaddr库提供了处理IP地址和子网的强大功能。它可以创建IP地址对象,并用CIDR前缀和网络掩码表示网络。IPNetwork对象允许灵活地更改前缀长度。此外,该库支持列表操作,如索引和切片,但这些操作在实际访问IP地址之前是延迟计算的。
711

被折叠的 条评论
为什么被折叠?



