python 处理IP

这篇博客介绍了如何使用Python处理IP地址,特别是将IP范围转换为CIDR格式。作者探讨了使用IPy和netaddr两个库的方法,指出IPy在处理某些IP范围时的限制,并提供了使用netaddr库的示例,该库能够正确计算IP范围并转换为CIDR块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题: 有个需求,需要将“192.168.0.0-192.168.0.255”的IP range形式转换成CIDR形式。

 

方法1: 使用IPy 包

具体参考:https://github.com/autocracy/python-ipy

https://blog.youkuaiyun.com/qq_40809549/article/details/79697329

简单示例:

from IPy import IP

IP('192.168.1.0-192.168.1.255',make_net=True).strNormal(1)   #prefix格式,string类型

编码过程发现问题:

(1)在使用IP('192.168.1.1/255.255.255.0) 是会报错,has invalid prefix length(24)。经过查询发现需要添加make_net=1才行。即:IP('192.168.1.1/255.255.255.0,make_net=1)

(2)使用IP('192.168.0.0-192.168.4.255',make_net=True) 也会报错,具体原因是无法转换成CIDR形式,因为在第三段数字,其二进制有000,001,010,011,100,归为/21却不全,/21包括:000,001,010,011,100,101,110,111。因此,只能考虑使用其他包,例如netaddr

 

方法2:使用netaddr

具体参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值