一、安装IPy

wget http://www.mylinuxer.com/down/IPy-0.82a.tar.gz

[root@localhost opt]# tar -zxvf IPy-0.82a.tar.gz 

[root@localhost opt]# cd python-ipy-IPy-0.82a/

[root@localhost python-ipy-IPy-0.82a]# python setup.py  install


二、IP地址、网段基本处理

[root@localhost ~]# python

Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48) 

[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> from IPy import IP

>>> ip=IP('192.168.0.0/16')

>>> print ip.len()        #输出该网段的IP个数

65536

>>> ip=IP('192.168.1.108')

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

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

>>> ip.iptype()                #返回网络类型

'PRIVATE'

>>> ip.int()                    #返回十进制格式

3232235884

>>> ip.strHex()                    #返回十六进制格式

'0xc0a8016c'

>>> ip.strDec()

'3232235884'

根据IP与掩码生成网段格式

>>> ip.make_net('255.255.0.0') 

IP('192.168.0.0/16')

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

192.168.1.0/24

>>> print(IP('192.168.1.108/255.255.0.0',make_net=True))  

192.168.0.0/16

>>> print(IP('192.168.1.0-192.168.1.255',make_net=True))

192.168.1.0/24

通过strNormal方法指定不同的wantperfixlen参数值以定制不同输出类型的网段,输出类型为字符串。

>>> 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'