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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值