Python入門之 IPy模組

2021-10-22 07:51:32 字數 3039 閱讀 8931

ip位址規劃是網路設計中非常重要的乙個環節,規劃的好壞會直接影響路由協議演算法的效率,包含網路效能、可擴充套件性等方面,在這個過程當中,免不了要計算大量的ip位址,包括網段、網路掩碼、廣播位址、子網數、ip型別等。python提供了乙個強大的第三方模組ipy(最新版本為v0.81。ipy模組可以很好地輔助我們高效完成ip的規劃工作。

wget  --no-check-certificate

tar -zxvf ipy-0.81.tar.gz

cd ipy-0.81

python setup.py install

ip(

'10.0.0.0/8'

).version(

)4 #4代表ipv4型別

ip('::1/8'

).version(

)6 #6代表ipv6型別

from ipy import ip

ip = ip(

'192.168.0.0/16'

)print ip.len(

)#輸出192.168.0.0/16網段的ip個數

for x in ip: #輸出192.168.0.0/16網段的ip清單

print(x)

反向解析名稱、ip型別、ip轉換等

>> from ipy import ip

>> ip = ip(

'192.168.1.20'

)>> ip.reversenames(

)# 反向解析位址格式

['20.1.168.192.in-addr.arpa.'

]>> ip.iptype(

)# 192.168.1.20為私網型別private

>> ip(

'8.8.8.8'

).iptype(

)# 8.8.8.8為公網型別

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

# 十六進製制轉成ip格式

8.8.8.8

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

也可以通過strnormal方法指定不同wantprefixlen引數值以定製不同輸出型別的網段。輸出型別為字串,如下:

有時候我們想比較兩個網段是否存在包含、重疊等等關係,比如同網路但不同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(

'10.0.0.0/24'

)< ip(

'12.0.0.0/24'

)true

'192.168.1.100'

in ip(

'192.168.1.0/24'

)true

ip('192.168.1.0/24'

)in ip(

'192.168.1.0/16'

)true

判斷兩個網段是否存在重疊,採用ipy提供的overlaps方法,如:

ip(

'192.168.1.0/23'

).overlaps(

'192.168.1.0/24')1

# 代表存在重疊

ip('192.168.1.0/24'

).overlaps(

'192.168.2.0')0

# 代表不存在重疊

python運維學習之IPy模組

from ipy import ip print ip 8.8.8.8 version 4print ip 1 version 6ip ip 192.168.1.0 24 print ip.len 輸出192.168.1.0 24網段的ip個數 for x in ip 輸出192.168.1.0 2...

Python自動化運維之IPy模組

ipy模組用於處理ipv4和ipv6位址和網路的類和工具。環境 文章所示 在python3.8,windows10,centos7.8 下測試通過。安裝 pip install ipy基本使用 輸出指定網段的ip個數及ip清單 匯入ip模組 from ipy import ip 指定網段為127.0...

IP位址處理模組IPy

安裝 pip install ipy from ipy import ip 1 ip型別 ip ip 192.168.0.0 16 返回4 2 ip位址的子網個數 print ip.len 3 反向解析位址格式 ip ip 192.168.0.0 16 print ip.reversenames 4...