【发布时间】:2021-05-18 03:05:39
【问题描述】:
从ipaddress 类,我知道address_exclude 方法。以下是文档中的一个示例:
>>> n1 = ip_network('192.0.2.0/28')
>>> n2 = ip_network('192.0.2.1/32')
>>> list(n1.address_exclude(n2))
[IPv4Network('192.0.2.8/29'), IPv4Network('192.0.2.4/30'),
IPv4Network('192.0.2.2/31'), IPv4Network('192.0.2.0/32')]
但是如果我想从网络中删除两个或更多子网怎么办?例如,如何从 192.168.10.0/26 中删除他的子网 192.168.10.24/29 和 192.168.10.48/28?结果应该是 192.168.10.0/28、192.168.10.16/29 和 192.168.10.32/28。
我正在尝试找到一种方法来使用address_exclude 方法编写我在脑海中使用的算法,但我做不到。有没有一种简单的方法来实现我刚才解释的内容?
【问题讨论】:
标签: python networking ipv4