在ip位址規劃中,涉及到計算大量的ip位址,包括網段、網路掩碼、廣播位址、子網數、ip型別等
別擔心,ipy模組拯救你。ipy模組可以很好的輔助我們高效的完成ip的規劃工作。
pip install ipy
1.ipy模組包含ip類,使用它可以方便處理絕大部分格式為ipv6的網路和位址
比如通過version方法來區分出ipv4和ipv6
>>>
import ipy
>>> ipy.ip('172.25.8.0/24').version()
4>>> ipy.ip('::1').version()
6
2.通過指定的網段輸出該網段的ip個數和所有的ip位址清單
如下:
ip = ipy.ip('192.168.0.0/16')
print ip.len()
for x in ip:
print x
3.反向解析名稱、ip型別、ip轉換等
>>> ip = ipy.ip('192.168.1.20')
>>> ip.reversenames()
['20.1.168.192.in-addr.arpa.']
>>> ip.iptype()
'private'
>>> ipy.ip('8.8.8.8').iptype()
'public'
>>> ipy.ip('8.8.8.8').int()
134744072l
>>> ipy.ip('8.8.8.8').strhex()
'0x8080808'
>>> ipy.ip('8.8.8.8').strbin()
'00001000000010000000100000001000'
>>>
print ipy.ip('0x8080808')
8.8.8
.8>>>
print ipy.ip(134744072)
8.8.8
.8
4.ip方法也支援網路位址的轉換,例如根據ip和掩碼產生網段格式
>>>
print (ipy.ip('192.168.1.0').make_net('255.255.255.0'))
192.168
.1.0/24
>>>
print (ipy.ip('192.168.1.0/255.255.255.0',make_net=true))
192.168
.1.0/24
>>>
print (ipy.ip('192.168.1.0-192.168.1.255',make_net=true))
192.168
.1.0/24
5.通過strnormal方法指定不同wantprefixlen引數值以定製不同輸出型別的網段,輸出型別為字串
>>> ipy.ip('192.168.1.0/24').strnormal(0) #無返回
'192.168.1.0'
>>> ipy.ip('192.168.1.0/24').strnormal(1) #prefix格式
'192.168.1.0/24'
>>> ipy.ip('192.168.1.0/24').strnormal(2) #decimalnetmask格式
'192.168.1.0/255.255.255.0'
>>> ipy.ip('192.168.1.0/24').strnormal(3) #lastip格式
'192.168.1.0-192.168.1.255'
比較兩個網段是否存在包含、重疊等關係,比如同網路但不同prefixlen會認為是不相等的網段,如10.0.0.0/16不等於10.0.0.0/24,另外即使具有相同的prefixlen但處於不同的網路位址,同樣也視為不相等,如10.0.0.0/16不等於192.0.0.0/16。ipy支援類似於數值型資料的比較,以幫助ip物件進行比較。
比較ip大小
>>> ipy.ip('10.0.0.0/24') < ipy.ip('12.0.0.0/24')
true
判斷ip位址和網段是否包含於另乙個網段中
>>> '192.168.1.100' in ipy.ip('192.168.1.0/24')
true
>>> ipy.ip('192.168.1.0/24') in ipy.ip('192.168.0.0/16')
true
判斷兩個網段是否存在重疊(overlaps方法)
>>> ipy.ip('192.168.0.0/23').overlaps('192.168.1.0/24')
1>>> ipy.ip('192.168.1.0/24').overlaps('192.168.2.0/24')
0
Python之實用的IP位址處理模組IPy
在ip位址規劃中,涉及到計算大量的ip位址,包括網段 網路掩碼 廣播位址 子網數 ip型別等 別擔心,ipy模組拯救你。ipy模組可以很好的輔助我們高效的完成ip的規劃工作。wget source i ipy ipy 0.81.tar.gz no check certificate tar zxvf...
python基礎篇之實用庫
python 的實用離不開其強大的庫或框架的支援,像正規表示式,檔案模組,命令列模組,django 框架,sk learning 工具箱等.這些都讓 python 能夠非常方便的處理不同領域的問題。初學 python,對 python 的文書處理能力有很深的印象,除了 str 物件自帶的一些方法外,...
實用的IP位址處理模組IPy
在ip位址規劃中,涉及到計算大量的ip位址,包括網段 網路掩碼 廣播位址 子網數 ip型別等。所以我們使用ipy處理這些問題。安裝 pip install ipy 或 pip install ipy 0.81判斷通過version方法就可以區分出ipv4與ipv6。import ipy ip 10....