Ruby の NetAddr::Tree クラスを使用して多数の CIDR オブジェクトを保持していますが、CIDR オブジェクトをより大きなサブネットに圧縮する方法が必要です。
次のような IP を取得する方法が必要です。
12.26.8.0/21
12.26.16.0/21
12.26.24.0/21
12.26.32.0/21
12.26.40.0/21
12.27.152.0/21
ツリー内の関連するアドレス範囲をマージして、出力が次のようになるようにします。
12.26.8.0/21
12.26.16.0/20
12.26.32.0/20
12.27.152.0/21
ドキュメントを調べましたが、これを行う方法が見つかりません。必要に応じて NEtAddr::Tree を使用しないようにしています。重要なのは、IP/ネットマスク文字列のリストを取得し、それらをマージして、1 行ずつ出力することだけです。