查找减去IPSet

时间:2016-05-17 18:39:14

标签: python cidr

我希望能够在python中使用netaddr获取ip过滤器,但我不知道如何在CIDR范围内减去两个ips来创建。相反,我得到两个不同的范围。

from netaddr import *

allnets = IPSet(['0.0.0.0/0'])
ip = IPSet(['8.8.8.8', '8.8.8.4'])

for ips in ip:
     print allnets - ip

我想获得一个过滤两个ip的IPset对象,而不是过滤每个ip的两组范围。

1 个答案:

答案 0 :(得分:2)

您要搜索的表达式为allnets - ip。这产生了一个过滤两个ips"。

的IPset对象

考虑这个程序:

from netaddr import *

allnets = IPSet(['0.0.0.0/0'])
ip = IPSet(['8.8.8.8', '8.8.8.4'])
filtered = allnets - ip

assert '8.8.8.8' not in filtered
assert '8.8.8.4' not in filtered
assert '8.8.8.7' in filtered
assert '192.0.2.17' in filtered
assert '203.0.113.1' in filtered