获取CIDR范围的对立面
我想列出一个CIDR范围列表,表示我指定的CIDR范围之外的地址。
作为一个简单的例子:
如果我的IP范围从8.8.8.8到8.8.8.10,我可以用CIDR范围8.8.8.8/31和8.8.8.10/32来表示。 但是我怎么能用CIDR表示法来表达这些范围的相反?
我是CIDR的新手,如果这种工具已经以流行格式存在,请原谅我的问题。
作为补充说明,我想最终在R中实现这种过滤,所以如果你可以用R来表达你的答案,那将是更可取的,但我真的很感兴趣的是如何构建算法来解决这类问题。
基本上,如果你有一个IP地址范围(X,Y),并且想要表示不在(X,Y)中的所有IP地址,那么它可以表示为两个范围:(0.0.0.0,X-1)和(Y + 1,255.255.255.255)。
然后,您只需将两个范围转换为CIDR。 范围可能会导致多个CIDR。
在具体示例中,您需要范围:(0.0.0.0,8.8.8.7)和(8.8.8.11,255.255.255.255)。 我不知道如何在R中做到这一点,但这里有一个方便的计算器:http://www.ipaddressguide.com/cidr
(0.0.0.0,8.8.8.7):
(8.8.8.11,255.255.255.255):
8.8.8.11/32
8.8.8.12/30