AIOps 一场颠覆传统运维的盛筵
1187
2022-10-02
【python运维】IP地址处理模块IPy
【IPy模块要求python2.6以上的版本】
升级python(从2.4到2.7)
wget https://python.org/ftp/python/2.7.8/Python-2.7.8.tgz
tar xvzf Python-2.7.8.tgz
cd Python-2.7.8
./configure
make
make install
修改环境变量(~/.bash_profile)
常用方法
获取ip地址的类型(IPV4或IPV6)
>>> IP('::1').version()
6
>>> IP('10.0.0.0/8').version()
4
输出该网段IP个数
>>> ip = IP('192.168.0.0/24')
>>> print ip.len()
256
输出该网段的所有IP
>>> for x in ip:
... print(x)
...
192.168.0.0
192.168.0.1
192.168.0.2
。。。
反向解析地址格式
>>> ip = IP('192.168.1.10')
>>> ip.reverseNames()
['10.1.168.192.in-addr.arpa.']
获取ip网络类型
>>> ip.iptype() //该ip为私网类型
'PRIVATE'
将ip转换为整型、16进制、二进制格式
>>> ip.int()
3232235786L
>>> ip.strHex()
'0xc0a8010a'
>>> ip.strBin()
'11000000101010000000000100001010'
将16进制转换成ip格式
>>> print(IP(0xc0a8010a))
192.168.1.10
网络地址转换
>>> print(IP('192.168.1.0').make_net('255.255.255.0')) //将子网掩码转换成
192.168.1.0/24
>>> print(IP('192.168.1.0/255.255.255.0', make_net=True))
192.168.1.0/24
利用strNormal方法(参数0~3, 不同的参数返回的结果不同)
>>> IP('192.168.1.0/24').strNormal(0)
'192.168.1.0'
>>> IP('192.168.1.0/24').strNormal(1)
'192.168.1.0/24'
>>> IP('192.168.1.0/24').strNormal(2)
'192.168.1.0/255.255.255.0'
>>> IP('192.168.1.0/24').strNormal(3)
'192.168.1.0-192.168.1.255'
多网格计算
对IP对象进行比较
>>> IP('10.0.0.0/24') < IP('12.0.0.0/24')
True
>>> IP('14.0.0.0/24') < IP('12.0.0.0/24')
False
判断IP地址和网段是否包含于另一个网段中
> '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
利用overlaps判断两个网段是否重叠(1代表存在重叠、0代表不存在重叠)
>>> IP('192.168.1.0/24').overlaps('192.168.2.0')
0
>>> IP('192.168.0.0/23').overlaps('192.168.1.0/24')
1
发表评论
暂时没有评论,来抢沙发吧~