【IPy模块02】Python运维模块之多网络计算方法详解

实用的IP地址处理模块IPy

IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直接影响路由协议算法的效率,包括网络性能、可扩展性等方面,在这个过程当中,免不了要计算大量的IP地址,包括网段、网络掩码、广播地址、子网数、P类型等。Python 提供了一个强大的第三方模块IPy(https://github.com/haypo/python-ipy/)

IPy模块可以很好地辅助我们高效完成IP的规划工作,下面进行详细介绍。

安装方式:pip install IPy

检测方法:

[root@python project]#ipython
In [1]: import IPy
In [2]: dir(IPy)
Out[2]: 
['INT_TYPES',
 'IP',
 'IPSet',
 'IPV6_MAP_MASK',
 'IPV6_TEST_MAP',
 'IPint',
。。。。。。。(省略)

1.2.2、多网络计算方法详解

有时候我们想比较两个网段是否存在包含、重叠等关系,比如同网络但不同prefxlen 会认为是不相等的网段,如10.0.0.0/16不等于10.0.0.0/24,另外即使具有相同的prefxlen但处于不同的网络地址,同样也视为不相等,如10.0.0.0/16不等于192.0.0.0/16。IPy支持类似于数值型数据的比较,以帮助IP对象进行比较,如:

1.多网络实践
简介
相同ip段,不同的掩码获取的ip地址不一样
不同ip段,相同的掩码获取的ip地址不一样
而不同的网段,彼此之间有可能存在ip地址重合
简单实践
from IPy import IP
#1 掩码的作用
#1-1 相同ip段,不同的掩码获取的ip地址不一样
ip_range = IP('192.168.8.0/30')    #192.168.8.0-192.168.8.3
ip_range = IP('192.168.8.0/27')    #192.168.8.0-192.168.9.31
ip_result = ip_range.len()
print("IP网段:{:<17}有{}个ip".format(str(ip_range), ip_result))
for i in ip_range:
    print(str(i))

#2 掩码的作用
#2-1 不同ip段,相同的掩码获取的ip地址不一样
ip_range = IP('192.168.8.0/30')    #192.168.8.0-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值