查找减法 IPSet
Find subtract IPSet
我希望能够在 python 中使用 netaddr 获得 ip 过滤器,但我不知道如何减去两个 ip 以在 CIDR 范围内创建。相反,我得到了两个独立的范围。
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 的两组范围。
您要搜索的表达式是allnets - ip
。产生 "one IPset object that filters both ips".
考虑这个程序:
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
我希望能够在 python 中使用 netaddr 获得 ip 过滤器,但我不知道如何减去两个 ip 以在 CIDR 范围内创建。相反,我得到了两个独立的范围。
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 的两组范围。
您要搜索的表达式是allnets - ip
。产生 "one IPset object that filters both ips".
考虑这个程序:
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