1. 程式人生 > >ip地址處理模塊IPy

ip地址處理模塊IPy

python ipy


下載以及安裝:


下載地址:https://pypi.python.org/packages/88/28/79162bfc351a3f1ab44d663ab3f03fb495806fdb592170990a1568ffbf63/IPy-0.83.tar.gz


tar -zxvf IPy-0.83.tar.gz

cd IPy-0.83

python setup.py install



可以用version的方法區分IPV4或者IPV6,如下面的代碼,返回4就是ipv4,返回6就是IPV6.

>>> from IPy import IP
>>> IP(‘192.0.0.0/16‘).version()  
4
>>> IP(‘::2‘).version()
6
>>>


通過指定的網段輸出該網段的IP個數以及IP地址的清單:

>>> import tab
>>> from IPy import IP
>>> ip = IP(‘192.168.1.0/24‘) 
>>> print ip.len()
256
>>> for x in ip:
    print x
    
192.168.1.0
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
192.168.1.7
192.168.1.8
192.168.1.9
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.13 
.......

下面介紹IP類的幾個常見的方法,包括反向解析域名,IP類型,IP轉換等。

>>> import tab
>>> from IPy import IP
>>> ip = IP(‘192.168.1.107‘)
>>> ip.reverseNames()
[‘107.1.168.192.in-addr.arpa.‘]
>>> ip.iptype()                            #私有地址
‘PRIVATE‘
>>> IP(‘202.15.15.6‘).iptype()
‘PUBLIC‘                                    #公有地址
>>> IP("8.8.8.8").int()
134744072                                #轉化為整形格式
>>> IP("8.8.8.8").strHex()
‘0x8080808‘                                #轉換成十六進制
>>> IP("8.8.8.8").strBin()
‘00001000000010000000100000001000‘       #轉換成二進制             
>>> print (IP(0x8080808))
8.8.8.8                                #十六進制轉換為IP格式
>>>


IP方法也支持網絡地址的轉換,如下:

>>> import tab
>>> from IPy import IP
>>> 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
>>> print (IP(‘192.168.1.0-192.168.1.255‘,make_net=True))
192.168.1.0/24
>>>

當然也可以反過來:

>>> import tab
>>> from IPy import IP
>>> 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地址處理模塊IPy