您的位置:首页 > 编程语言 > Python开发

python自动化学习-实用的iP地址处理模块IPy

2016-10-26 23:45 531 查看
实用的iP地址处理模块IPy

1、下载安装

wget https://pypi.python.org/packages/88/28/79162bfc351a3f1ab44d663ab3f03fb495806fdb592170990a1568ffbf63/IPy-0.83.tar.gz
mv IPy-0.83.tar.gz /soft/

cd /soft/

tar -zxvf IPy-0.83.tar.gz 

cd IPy-0.83/

python setup.py install

running install

running build

running build_py

creating build

creating build/lib

copying IPy.py -> build/lib

running install_lib

copying build/lib/IPy.py -> /usr/lib/python2.7/site-packages

byte-compiling /usr/lib/python2.7/site-packages/IPy.py to IPy.pyc

running install_egg_info

Writing /usr/lib/python2.7/site-packages/IPy-0.83-py2.7.egg-info

2、ip地址、网段的基本处理

通过version方法区分ipv4和ipv6

>>> from IPy import IP

>>> IP('10.0.0.0/8').version()

4

>>> IP('::1').version()

6

3、输出ip个数和ip地址清单

[root@python py]# vi iplist.py

#!/usr/bin/env python

from IPy import IP

ip = IP('192.168.0.0/16')

print ip.len()

for x in ip:

    print(x)

[root@python py]# chmod 777 iplist.py 

[root@python py]# ./iplist.py |wc -l

65537

[root@python py]# ./iplist.py |more

65536

192.168.0.0

192.168.0.1

192.168.0.2

192.168.0.3

192.168.0.4

192.168.0.5

。。。。

IP类常见用法

>>> ip = IP('192.168.3.40')

>>> ip.reverseNames()                           (反向解析地址格式)

['40.3.168.192.in-addr.arpa.']

>>> ip.iptype()                                          (192.168.3.40为私网地址)

>>> IP('8.8.8.8').iptype()                         (8.8.8.8为公网类型)  

'PUBLIC

>>> IP('8.8.8.8').int()                                (转换为整型格式)

134744072

>>> IP('8.8.8.8').strHex()                         (转换为16进制)

'0x8080808'

>>> IP('8.8.8.8').strBin()                          (转换为二进制)

'00001000000010000000100000001000'

>>> print(IP(0*8080808))                      (十六进制转换成ip格式)

0.0.0.0

IPy支持网络地址转换

>>> print(IP('192.168.3.0').make_net('255.255.255.0'))

192.168.3.0/24

>>> print(IP('192.168.3.0/255.255.255.0',make_net=True))

192.168.3.0/24

>>> print(IP('192.168.3.0-192.168.3.255',make_net=True))

192.168.3.0/24

也可以使用strNormal方法指定不同的wantprefixlen参数值来制定不同的输出类型的网段

>>> IP('192.168.3.0').strNormal(0)

'192.168.3.0'

>>> IP('192.168.3.0/24').strNormal(1)

'192.168.3.0/24'

>>> IP('192.168.3.0/24').strNormal(2)

'192.168.3.0/255.255.255.0'

>>> IP('192.168.3.0/24').strNormal(3)

'192.168.3.0-192.168.3.255'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: