自动化运维之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。

 

你可能感兴趣的:(python)