gpt4 book ai didi

r - 与 CIDR 范围相反

转载 作者:行者123 更新时间:2023-12-04 12:40:01 26 4
gpt4 key购买 nike

我想制作一个 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 表达你的答案,那会更可取,但我真的最感兴趣的是如何构建算法来解决这类问题。

最佳答案

基本上,如果您有一个范围 (X, Y) 的 IP 地址并且想要表示不在 (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):

  • 0.0.0.0/5
  • 8.0.0.0/13
  • 8.8.0.0/21
  • 8.8.8.0/29

  • (8.8.8.11, 255.255.255.255):
  • 8.8.8.11/32
  • 8.8.8.12/30
  • 8.8.8.16/28
  • 8.8.8.32/27
  • 8.8.8.64/26
  • 8.8.8.128/25
  • 8.8.9.0/24
  • 8.8.10.0/23
  • 8.8.12.0/22
  • 8.8.16.0/20
  • 8.8.32.0/19
  • 8.8.64.0/18
  • 8.8.128.0/17
  • 8.9.0.0/16
  • 8.10.0.0/15
  • 8.12.0.0/14
  • 8.16.0.0/12
  • 8.32.0.0/11
  • 8.64.0.0/10
  • 8.128.0.0/9
  • 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/1
  • 关于r - 与 CIDR 范围相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37144678/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com