有什么工具或方法可以对 CIDR 地址块进行合并、求补集等操作。
比如已知大陆 CIDR 地址块,得到大陆以外 CIDR 地址块。
已知:
8.0.0.0/8
202.0.0.0/8
可以得出:
1.0.0.0/5
9.0.0.0/8
10.0.0.0/7
12.0.0.0/6
16.0.0.0/4
32.0.0.0/3
64.0.0.0/2
128.0.0.0/2
192.0.0.0/5
200.0.0.0/7
203.0.0.0/8
204.0.0.0/6
208.0.0.0/4
224.0.0.0/3
Click to rate this post!
[Total: 0 Average: 0]
https://www.ipaddressguide.com/cidr
https://ip2cidr.com/bulk-ip-to-cidr-converter.php
没仔细看,google 试试吧
https://docs.python.org/3/library/ipaddress.html
蹲一个答案
之前也碰到了类似的问题:有一系列的 IP 地址,求最后全 IP 段被分成了几段之类的需求,因为没有找到类似的实现,最后自己简单动手写了一个,也用到了楼上提到的 ipaddress 的包,另外就是用到了 LpmDict 的包。
https://github.com/Azure/sonic-mgmt/blob/master/ansible/roles/test/files/ptftests/fib.py
楼主的需求相对更加简单一点,也许会更容易实现。
一个 cidr 不就是两个 uint32 吗(上下区间),求个补集不是一分钟的事…
谢谢各位
@jaylee4869
@Showfom
@stcheng
@Mohanson
https://www.v2ex.com/t/292220#reply6
@bazingaterry 这个帖子的链接已经 404 变更后的应该是 https://github.com/x1angli/regional-ip-addresses/blob/master/ipaddr.py