Python之實用的IP位址處理模組IPy

2021-08-15 11:01:36 字數 2510 閱讀 1515

在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....