# IPy - IPy是处理IP和网络的工具类
# 安装 pip install IPy
# 用来区分IPv4 和 IPv6
from IPy import IP
print("127.0.0.1属于IPv%s" % IP("127.0.0.1").version())
# [out]: 127.0.0.1属于IPv4
# 输出该网段下所有的IP地址
for ip in IP("10.2.0.0/31"):
print(ip)
# [out]:
# 10.2.0.0
# 10.2.0.1
ip = IP('192.168.1.20')
# 判断是公网还是私网
print("192.168.1.20的网络类型是" + ip.iptype()) # 192.168.1.20的网络类型是PRIVATE
# 将IP转化成整形
print("192.168.1.20 to int is %s" % ip.int()) # 192.168.1.20 to int is 3232235796
# 将整形转化成IP
print("3232235796 is %s" % IP(3232235796)) # 3232235796 is 192.168.1.20
# 根据IP和掩码 或者IP的范围 产生网段
print(IP("10.8.13.48").make_net("255.255.254.0")) # 10.8.12.0/23
print(IP("10.8.13.48/255.255.254.0",make_net=True)) # 10.8.12.0/23
print(IP("10.8.12.0-10.8.13.255",make_net=True)) # 10.8.12.0/23
# 根据网段产生IP的范围
print(IP("10.8.12.0/23").strNormal(3)) # 10.8.12.0-10.8.13.255
# 判断IP是不是在网段中
print("10.8.13.48" in IP("10.8.12.0/23")) # True
# 判断网段是否重叠
print(IP("10.8.12.0/23").overlaps("10.8.13.0/24")) # 1