2016-05-10 13 views
6

私が指定する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を使用して回答するとよいでしょうが、私はこの種の問題を解決するアルゴリズムを構築する方法に本当に関心があります問題。

答えて

3

IPアドレスの範囲(X、Y)があり、(X、Y)以外のすべてのIPアドレスを表す場合は、2つの範囲(0.0.0.0、X -1)および(Y + 1、255.255.255.255)。

次に、2つの範囲を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.32/27
  • 8.8.8.64/26
  • 8.8
  • 8.8.8.16/28
  • 8.8.8.12/30

    • 8.8.8.11/。 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
  • 関連する問題