ipy模組用於處理ipv4和ipv6位址和網路的類和工具。
環境
文章所示**在python3.8,windows10,centos7.8 下測試通過。
安裝
pip install ipy
基本使用
輸出指定網段的ip個數及ip清單
# 匯入ip模組
from ipy import ip
# 指定網段為127.0.0.0/30
ip = ip('127.0.0.0/30')
in [8]: for x in ip:
...: print(x) # 列出該網段所有ip
...:
127.0.0.0
127.0.0.1
127.0.0.2
127.0.0.3
in [10]: ip.len() # 該網段ip個數
out[10]: 4
反向解析位址格式
in [12]: ip.reversenames()
out[12]:
['0.0.0.127.in-addr.arpa.',
'1.0.0.127.in-addr.arpa.',
'2.0.0.127.in-addr.arpa.',
'3.0.0.127.in-addr.arpa.']
in [38]: ip.reversename()
out[38]: '0-3.0.0.127.in-addr.arpa.'
in [35]: ip.netmask()
out[35]: ip('255.255.255.252')
in [36]: ip.prefixlen()
out[36]: 30
in [37]: ip.broadcast()
out[37]: ip('127.0.0.3')
ip位址型別
in [13]: ip.iptype()
out[13]: 'loopback'
ip轉換為整型格式
in [16]: ip('127.0.0.0').int()
out[16]: 2130706432
ip轉換為16進製制
in [17]: ip('127.0.0.0').strhex()
out[17]: '0x7f000000'
ip轉換為二進位制
in [18]: ip('127.0.0.0').strbin()
out[18]: '01111111000000000000000000000000'
16進製制止轉換為ip格式
in [19]: ip('0x7f000000')
out[19]: ip('127.0.0.0')
ip位址分類
in [21]: ip('127.0.0.0').version() #ipv4
out[21]: 4
in [22]: ip('::1').version() # ipv6
out[22]: 6
ip與網路位址轉換
in [23]: ip('127.0.0.1/255.0.0.0', make_net=true)
out[23]: ip('127.0.0.0/8')
in [24]: ip('127.0.0.1').make_net('255.0.0.0')
out[24]: ip('127.0.0.0/8')
in [25]: ip('127.0.0.0-127.255.255.255')
out[25]: ip('127.0.0.0/8')
ip位址轉換為字串
in [26]: ip('10.0.0.0/32').strnormal()
out[26]: '10.0.0.0'
in [27]: ip('10.0.0.0/24').strnormal()
out[27]: '10.0.0.0/24'
in [28]: ip('10.0.0.0/24').strnormal(0)
out[28]: '10.0.0.0'
in [29]: ip('10.0.0.0/24').strnormal(1)
out[29]: '10.0.0.0/24'
in [30]: ip('10.0.0.0/24').strnormal(2)
out[30]: '10.0.0.0/255.255.255.0'
in [31]: ip('10.0.0.0/24').strnormal(3)
out[31]: '10.0.0.0-10.0.0.255'
wantprefixlen取值含義
wantprefixlen == 0 / none don't return anything 1.2.3.0
wantprefixlen == 1 返回字首 1.2.3.0/24
wantprefixlen == 2 返回網段/子網掩碼 1.2.3.0/255.255.255.0
wantprefixlen == 3 返回ip位址範圍 1.2.3.0-1.2.3.255
多網路計算
# 判斷ip是否包含在另乙個網段中
in [32]: '192.168.1.1' in ip('192.168.1.0/24')
out[32]: true
# 判斷網段是否重疊,0表示不存在重疊,1表示存在重疊
in [33]: ip('192.168.1.0/24').overlaps('192.168.2.0')
out[33]: 0
# 子網合併
in [51]: ipset([ip('192.168.1.0/24'),ip('192.168.0.0/24')])
out[51]: ipset([ip('192.168.0.0/23')])linux就該這麼學
python自動化運維(IPy包)
from ipy import ip ip ip 192.168.20.0 24 print ip.len for x in ip print x from ipy import ip 反向解析,檢視位址型別 ip ip 192.168.1.20 print ip.reversenames prin...
python之自動化運維 Paramiko
使用開源的paramiko,我們就可以用python 中通過ssh協議對遠端伺服器執行操作,不需要手敲ssh命令,從而實現自動化運維。ssh是乙個協議,openssh是其中乙個開源實現,paramiko庫,實現了sshv2協議 底層使用cryptography 專案文件 點我跳轉 擴充套件 ssh協...
運維自動化
1,cobbler安裝環境準備 安裝epel epel release 6 8.noarch.rpm x86 64 epel release 6 8.noarch.rpm x86 安裝系列依賴環境 要是區域網用,建議關閉iptables 或是放行25151 80 69埠 和關閉selinux 檢視狀...