Python自動化運維之IPy模組
導讀 | IPy模組用於處理IPv4和IPv6地址和網路的類和工具。 |
環境
文章所示程式碼在python3.8,windows10, 7.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地址格式可以互相轉換,有興趣可以試試
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')])
本文原創地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2730207/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自動化運維工具之Puppet模組運維
- Python自動化運維之psutil系統效能資訊模組Python運維
- IT運維之自動化運維運維
- [Linux]Ansible自動化運維② - 工具與模組Linux運維
- 什麼是自動化運維?為什麼選擇Python做自動化運維?運維Python
- Oracle 自動化運維-Python連線OracleOracle運維Python
- Python+Django+Ansible Playbook自動化運維PythonDjango運維
- 運維自動化之賬單系統運維
- 【python介面自動化】- logging日誌模組Python
- 運維效率之資料遷移自動化運維
- CrazyWing:Python自動化運維開發實戰 十七、PythonPython運維
- Python 自動化測試 必會模組 UnittestPython
- 基於Python的介面自動化實戰-基礎篇之pymysql模組運算元據庫PythonMySql
- Ansible自動化運維工具運維
- 介面自動化Python3_requests之使用xlrd讀取excel模組PythonExcel
- 簡單介紹python自動化運維常用庫Python運維
- 自動化運維工具之Puppet常用資源(二)運維
- 自動化運維工具之Puppet常用資源(一)運維
- 自動化運維工具之Puppet基礎入門運維
- vivo大規模Kubernetes叢集自動化運維實踐運維
- vivo大規模 Kubernetes 叢集自動化運維實踐運維
- Oracle 自動化運維-Python監控Oracle告警日誌Oracle運維Python
- ansible自動化運維入門運維
- 簡化IT運維工作,就要學會使用自動化運維工具!運維
- Devops-運維效率之資料遷移自動化dev運維
- 運動相機競爭升級:下一站模組化、自動化?
- Python+Django+ansible playbook自動化運維專案實戰PythonDjango運維
- Oracle 自動化運維-Python表空間郵件預警Oracle運維Python
- 《Python自動化運維快速入門(第2版)》簡介Python運維
- 自動化運維工具Ansible介紹運維
- 分層運維自動化監控運維
- 自動化運維的快速演進運維
- ansible自動化運維資料庫運維資料庫
- Python模組之urllib模組Python
- python模組之collections模組Python
- 指標是構築自動化運維與智慧化運維的基石指標運維
- Linux Shell互動式自動化運維程式Linux運維
- 阿里雲釋出ECS自動化運維套件,幫助企業實現自動化運維轉型阿里運維套件