ホームページ > バックエンド開発 > Golang > Go の入力形式が拡張された強化された CIDR ブロック計算ツール

Go の入力形式が拡張された強化された CIDR ブロック計算ツール

Patricia Arquette
リリース: 2025-01-07 12:07:40
オリジナル
780 人が閲覧しました

IP アドレス範囲の効率的な管理は、ネットワーク エンジニアリング、クラウド インフラストラクチャ、サイバーセキュリティにおいて重要です。 CIDR (Classless Inter-Domain Routing) ブロックは、IP アドレス範囲を表すコンパクトな方法を提供しますが、手動で処理するのは面倒な場合があります。拡張入力形式をサポートしながらこのプロセスを簡素化するように設計された Go ベースのユーティリティである CIDR-Converter を使用してください。

ここで私のリポジトリをチェックしてください:

Enhanced CIDR Block Calculator with Expanded Input Formats in Go パッチグリッチ / CIDコンバーター

CIDR ブロックコンバーター

CIDR 変換

Go で書かれたコマンドライン ユーティリティ。さまざまな形式の IP アドレス範囲を処理、検証、マージします。このツールは、CIDR 表記、ワイルドカード表記、および複数の入出力形式をサポートしています。

特徴

入力処理

  • 複数の入力形式がサポートされています:
    • CIDR 表記 (例: "192.168.1.0/24")
    • ワイルドカード表記 (例: "192.168.1.*")
    • CIDR ブロックを含む CSV ファイル
    • CIDR ブロックを含む JSON ファイル
  • 手動入力用の対話型標準入力モード

CIDR オペレーション

  • IP 範囲と CIDR ブロックを検証します
  • ワイルドカード表記を CIDR 形式に変換します
  • 重複する CIDR ブロックをマージします
  • 最適な構成のために CIDR ブロックを並べ替えます

出力処理

  • 結合された結果を JSON ファイルに自動的に保存します
  • きれいに印刷された JSON 出力
  • 包括的なエラー処理とレポート

インストール

システムに Go がインストールされていることを確認し、次の手順を実行します。

git clone [repository-url]
cd [repository-name]
go build
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
全画面モードに入る 全画面モードを終了します

使用法

このツールは 3 つの入力モードをサポートしています:

1.標準入力モード

git clone [repository-url]
cd [repository-name]
go build
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
全画面モードに入る 全画面モードを終了します
GitHub で表示

アプリケーションの機能と範囲を増やすために、追加機能を備えた Web アプリを作成することも計画しています。

このプロジェクトは、Andy Walker の cidr-convert リポジトリからインスピレーションを受けました。

主な特長

1. 柔軟な入力フォーマット

  • 従来の CIDR 表記 (例: 192.168.0.0/24) をサポート
  • ワイルドカード表記 (例: 192.168..) を解析します
  • バイナリ文字列を CIDR ブロックに変換します (例: 11000000101010000000000000000000/24)
  • CSV および JSON ファイルから CIDR を読み取ります

2. インテリジェントなマージ

  • 重複する CIDR を最小限のセットにマージし、冗長性を削減します
  • 可能な場合、小さなサブネットを大きなサブネットに集約します

3. ファイル I/O サポート

  • ファイルまたは標準入力からの入力を解析します
  • マージされた CIDR を JSON ファイルに保存して、簡単に共有および保存できます

解決できる問題

CIDR の大きなリストの処理は、特に重複または隣接する範囲を処理する場合に面倒になることがあります。これらの範囲を手動で集計すると、エラーが発生しやすく、時間がかかります。このツールはプロセスを自動化し、最適な集計を確保し、管理ミスのリスクを軽減します。

仕組み

コア機能

1. CIDR の解析と検証

parseCIDR 関数は、入力が有効な CIDR 表記に準拠していることを確認します。

2. ワイルドカードとバイナリの解析

  • ワイルドカード (例: 192.168..) は、マスク長を分析することによって CIDR に変換されます
  • バイナリ文字列 (例: 11000000101010000000000000000000/24) は IP アドレスに変換されます

3. CIDR の結合

  • mergeCIDRs 関数は、重複する範囲をマージすることで冗長性を削除します
  • aggregateCIDRs 関数は、小さなサブネットをより大きな包括的なブロックに結合します

4. ファイルの解析

parseCSV 関数と parseJSON 関数を使用して、CSV 形式と JSON 形式から CIDR を読み取ります。

5. 出力

マージされた CIDR は、他のツールやチームが簡単に利用できるように JSON ファイルに保存されます。

使用例

コマンドラインの実行

入力タイプを指定して、ターミナルからツールを直接実行します:

git clone [repository-url]
cd [repository-name]
go build
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

サンプル出力

入力が与えられた場合:

./cidr-processor
<span># Enter CIDR blocks interactively, one per line:</span>
192.168.1.0/24
10.0.0.*
<span># Press Ctrl+D (Linux/Mac) or Ctrl+Z (Windows) to</span>
ログイン後にコピー
ログイン後にコピー

ツールは単一の集約ブロックを出力します:

# Standard input
$ go run main.go
Enter CIDR blocks, one per line. Press Ctrl+D (Linux/Mac) or Ctrl+Z (Windows) to end input:
192.168.0.0/24
192.168.1.0/24

# CSV Input
$ go run main.go input.csv

# JSON Input
$ go run main.go input.json
ログイン後にコピー

merged_cidrs.json に保存されました。

コードのチュートリアル

ワイルドカード表記の解析

192.168.. のようなワイルドカードは CIDR に変換されます:

192.168.0.0/24
192.168.1.0/24
ログイン後にコピー

関数は適切なプレフィックス長を計算し、CIDR ブロックを構築します。

マージと集約

mergeCIDRs 関数は冗長性を排除します:

[
  "192.168.0.0/23"
]
ログイン後にコピー

集計は次のように続きます:

git clone [repository-url]
cd [repository-name]
go build
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

このステップでは、隣接する範囲をより大きなブロックに結合します。

ファイルの解析

CSV および JSON 入力ファイルは parseCSV および parseJSON で解析され、既存のワークフローとのシームレスな統合が可能になります。

./cidr-processor
<span># Enter CIDR blocks interactively, one per line:</span>
192.168.1.0/24
10.0.0.*
<span># Press Ctrl+D (Linux/Mac) or Ctrl+Z (Windows) to</span>
ログイン後にコピー
ログイン後にコピー

なぜ行くのですか?

Go の堅牢な標準ライブラリには、net、regexp、encoding/json などのパッケージが含まれているため、ネットワーク関連のツールを構築するのに最適です。強力な同時実行モデルにより、大規模なデータセットでも高いパフォーマンスが保証されます。

将来の機能強化

1.IPv6のサポート

  • IPv6 範囲を処理するために機能を拡張します

2. 動的入力フォーマット

  • YAML と XML のサポートを追加

3. ウェブインターフェース

  • 対話型 CIDR 管理用の軽量 Web アプリケーションを構築する

結論

拡張された CIDR ブロック計算ツールは、拡張された入力形式、インテリジェントなマージ、および堅牢なファイル サポートにより CIDR 管理を簡素化します。その多用途性により、ネットワーク エンジニア、クラウド アーキテクト、サイバーセキュリティの専門家にとって貴重なツールとなります。 Andy Walker の cidr-convert からインスピレーションを得たこのツールは、より包括的なソリューションを提供するための基本的なアイデアに基づいて構築されています。今すぐ試して、CIDR ワークフローを合理化してください!

以上がGo の入力形式が拡張された強化された CIDR ブロック計算ツールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート