python关于ip的计算-IPy

工作中,我们有时候会遇到要计算一个ip或者网段是否在另一个网段中。有时候会判断两个网段是否重叠。这时使用IPy会方便很多。

下列的shell是IPy的安装:      

cd /usr/local
wget https://pypi.python.org/packages/source/I/IPy/IPy-0.81.tar.gz --no-check-certificate
tar -zxvf IPy-0.81.tar.gz
cd IPy-0.81
python setup.py install

IPy的方便性:

    1: IP(‘10.0.0.0/8‘).version() #获取IP的类型

    2: 

ip = IP(‘192.168.0.0/16‘)
print ip.len() #有多少个ip ,一般计算子网的数量直接减2即可
for x in ip:
	print(x) #分别打印出每个ip

    3: 

IP(‘8.8.8.8‘).iptype() #ip的类型
IP(‘8.8.8.8‘).int() #转换成整形
IP(‘8.8.8.8‘).strHex() #转换成十六进制
IP(‘8.8.8.8‘).strBin() #转换成二进制
print(IP(0x8080808)) #十六进制转换成ip

    4: 

IP(‘192.168.1.0/24‘).strNormal(1) #输出/24格式
IP(‘192.168.1.0/24‘).strNormal(2) #输出掩码格式
IP(‘192.168.1.0/24‘).strNormal(3) #输出广播地址格式

    5: 

IP(‘192.168.1.0/24‘) in IP(‘192.168.0.0/16‘) #192.168.1.0/24是否在192.168.0.0/16位里面

    6: 

IP(‘192.168.1.0/24‘).overlaps(‘192.168.2.0/24‘) #网段不存在重叠 返回0(如果重叠,则返回0)

通过以上的记录,我们在工作中可以解决的问题是:批量判断ip的类型;批量把ip转换成自己想要的格式,批量判断一个ip是否被包含在一个网段中,批量判断两个网段间是否存在重叠。

本文出自 “庄伟鸿” 博客,请务必保留此出处http://zhuangweihong.blog.51cto.com/8808431/1650097

python关于ip的计算-IPy

原文地址:http://zhuangweihong.blog.51cto.com/8808431/1650097

为您推荐