Maison >développement back-end >Golang >Calculateur de blocs CIDR amélioré avec formats d'entrée étendus dans Go
Une gestion efficace des plages d'adresses IP est essentielle dans l'ingénierie des réseaux, l'infrastructure cloud et la cybersécurité. Les blocs CIDR (Classless Inter-Domain Routing) offrent un moyen compact de représenter les plages d'adresses IP, mais leur gestion manuelle peut s'avérer fastidieuse. Entrez le CIDR-Converter, un utilitaire basé sur Go conçu pour simplifier ce processus tout en prenant en charge les formats d'entrée étendus.
Consultez mon dépôt ici :
Un utilitaire de ligne de commande écrit en Go qui traite, valide et fusionne des plages d'adresses IP dans différents formats. L'outil prend en charge la notation CIDR, la notation générique et plusieurs formats d'entrée/sortie.
Assurez-vous que Go est installé sur votre système, puis :
git clone [repository-url] cd [repository-name] go build
L'outil prend en charge trois modes de saisie :
git clone [repository-url] cd [repository-name] go build…
Je prévois également de créer une application Web avec des fonctionnalités supplémentaires, pour augmenter les fonctionnalités et la portée de l'application !
Ce projet a été inspiré par le référentiel cidr-convert d'Andy Walker.
La gestion de grandes listes de CIDR peut être fastidieuse, en particulier lorsqu'il s'agit de plages qui se chevauchent ou sont adjacentes. L'agrégation manuelle de ces plages est sujette aux erreurs et prend du temps. Cet outil automatise le processus, garantissant une agrégation optimale et réduisant le risque de mauvaise gestion.
La fonction parseCIDR garantit que l'entrée est conforme à la notation CIDR valide.
Lit les CIDR à partir des formats CSV et JSON à l'aide des fonctions parseCSV et parseJSON.
Les CIDR fusionnés sont enregistrés dans un fichier JSON pour une utilisation facile par d'autres outils ou équipes.
Exécutez l'outil directement depuis le terminal, en spécifiant le type d'entrée :
git clone [repository-url] cd [repository-name] go build
Compte tenu de la contribution :
./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>
L'outil génère un seul bloc agrégé :
# 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
Enregistré dans merged_cidrs.json.
Les caractères génériques comme 192.168.. sont convertis en CIDR :
192.168.0.0/24 192.168.1.0/24
La fonction calcule la longueur de préfixe appropriée et construit un bloc CIDR.
La fonction mergeCIDRs élimine la redondance :
[ "192.168.0.0/23" ]
L'agrégation suit avec :
git clone [repository-url] cd [repository-name] go build
Cette étape combine les plages adjacentes en blocs plus grands.
Les fichiers d'entrée CSV et JSON sont analysés avec parseCSV et parseJSON, permettant une intégration transparente avec les flux de travail existants :
./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>
La bibliothèque standard robuste de Go, comprenant des packages tels que net, regexp et encoding/json, en fait un excellent choix pour créer des outils liés au réseau. Son modèle de concurrence solide garantit des performances élevées, même avec de grands ensembles de données.
Le calculateur de bloc CIDR amélioré simplifie la gestion du CIDR avec des formats d'entrée étendus, une fusion intelligente et une prise en charge robuste des fichiers. Sa polyvalence en fait un outil précieux pour les ingénieurs réseau, les architectes cloud et les professionnels de la cybersécurité. Inspiré du cidr-convert d'Andy Walker, cet outil s'appuie sur des idées fondamentales pour offrir une solution plus complète. Essayez-le et rationalisez vos flux de travail CIDR dès aujourd'hui !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!