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