自動化運維之IPy模塊~IP地址,網段的處理

一、查看某個IP地址的網段是屬於IPV4還是IPV6協議的:

>>> from IPy import IP  # 導入IPy模塊中的IP方法
>>> IP('10.1.0.0/16').version()  # 查看這個IP地址的類型
4  # 表示IPV4協議類型
>>> IP('::1').version()  # 查看這個IP地址的類型
6  # 表示IPV6協議類型
>>> 

二、查看某個IP網段有幾個IP地址,以及展示出來這些具體信息:

>>> from IPy import IP  # 導入模塊
>>> jier = IP('10.0.0.16/28')  # 將這個網段的IP賦值給一個變量,/28是C類IP地址的子網劃分
>>> print(jier.len())  # 查看變量中的具體數量
16
>>> for i in jier:  # 遍歷變量中的每一條信息
...     print(i)  # 打印出來你遍歷到的信息
... 
10.0.0.16
10.0.0.17
10.0.0.18
10.0.0.19
10.0.0.20
10.0.0.21
10.0.0.22
10.0.0.23
10.0.0.24
10.0.0.25
10.0.0.26
10.0.0.27
10.0.0.28
10.0.0.29
10.0.0.30
10.0.0.31
>>> 

三、可以將這個IP地址進行反轉解析,查看IP地址是否是公網IP地址,以及IP地址進制的轉換;

>>> from IPy import IP  # 導入模塊
>>> jier = IP('192.168.1.1')  # 將一個IP地址賦值給變量jier
>>> jier.reverseNames()  # 將這個IP地址反轉解析
['1.1.168.192.in-addr.arpa.']
>>> jier.iptype()  # 查看這個IP地址的類型(公網還是私網)
'PRIVATE'  # PRIVATE是私網IP地址
>>> suner = IP('114.114.114.114')  # 將一個IP地址賦值給變量suner
>>> suner.iptype()  # 查看suner這個IP地址的類型(公網還是私網)
'PUBLIC'  # PUBLIC是公網IP地址
>>> jier.int()  # 將jier這個變量所代表的IP地址轉換成整數型
3232235777
>>> jier.strHex()  # 將jier這個變量所代表的IP地址轉換成16進制
'0xc0a80101'
>>> jier.strBin()  # 將jier這個變量所代表的IP地址換成成2進制
'11000000101010000000000100000001'
>>> print(IP(0xc0a80101))  # 將16進制的IP地址轉換成10進制的IP地址
192.168.1.1

四、網絡地址的轉換,即通過子網掩碼來生成網段;

>>> from IPy import IP  # 導入模塊
>>> print(IP('192.168.1.0').make_net('255.255.255.0'))  # 根據起始IP和子網掩碼生成IP地址
192.168.1.0/24
>>> print(IP('192.168.1.0/255.255.255.0',make_net=True))  # 根據起始IP和子網掩碼生成IP地址的另一種方式
192.168.1.0/24
>>> print(IP('192.168.1.0-192.168.1.31',make_net=True))  # 根據起始IP和終止IP來劃分子網
192.168.1.0/27
>>> 

五、 也可以通過strNormal方法指定不同wantprefixlen參數值以定製不同輸出類型的網段。輸出類型爲字符串

>>> from IPy import IP
>>> IP('192.168.1.0/24').strNormal(0)  
'192.168.1.0'
>>> IP('192.168.1.0/24').strNormal(1)
'192.168.1.0/24'
>>> IP('192.168.1.0/24').strNormal(2)
'192.168.1.0/255.255.255.0'
>>> IP('192.168.1.0/24').strNormal(3)
'192.168.1.0-192.168.1.255'
>>> 

wantprefixlen的取值及含義:

wantprefixlen = 0,無返回,如192.168.1.0;

wantprefixlen = 1,prefix格式,如192.168.1.0/24;

wantprefixlen = 2,decimalnetmask格式,如192.168.1.0/255.255.255.0;

wantprefixlen = 3,lastIP格式,如192.168.1.0-192.168.1.255。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章