IPY
ip的处理方面经常需要处理 大量的IP地址。包括网络性能,网络掩码,广播地址,子网数,IP类型进行判断。IPy 模块就可以很好的解决这个问题。
安装方式
# pip install IPy
判断 ip 的类型
>>> from IPy import IP
>>> ip = IP('192.168.1.2')
>>> ip.version()
4
>>> ip.iptype()
'PRIVATE'
计算一个网段内的ip地址的个数,并且再全部列出来。
>>> ip = IP('192.168.0.0/30')
>>> print(ip.len())
4
>>> for x in ip:
... print(x)
...
192.168.0.0
192.168.0.1
192.168.0.2
192.168.0.3
根据IP与掩码生成网段的格式
>>> from IPy import IP
>>> print(IP('192.168.1.1').make_net('255.255.255.0'))
192.168.1.0/24
判断一个网段(一个网段是否包含关系)
>>> IP('192.168.1.0/24').strNormal(3)
'192.168.1.0-192.168.1.255'
>>>
>>>
>>> '192.168.1.100' in IP('192.168.1.0/24')
True
>>>
>>>
>>> IP('192.168.1.0/24') in IP('192.168.0.0/16')
True
(一个网段是否重叠关系)
1代表重叠,0代表不重叠
>>> IP('192.168.1.0/24').overlaps('192.168.2.0')
0
>>> IP('192.168.0.0/23').overlaps('192.168.2.0')
0
>>> IP('192.168.0.0/23').overlaps('192.168.1.0/24')
1