【python运维】IP地址处理模块IPy

网友投稿 1187 2022-10-02

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

【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

上一篇:有赞MySQL自动化运维之路—ZanDB
下一篇:MySQL自动化运维工具Inception
相关文章

 发表评论

暂时没有评论,来抢沙发吧~