recherche
Maisondéveloppement back-endGolangCalculateur 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 :

Enhanced CIDR Block Calculator with Expanded Input Formats in Go pat-glitch / convertisseur cidr

Un convertisseur de blocs CIDR

Conversion CIDR

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.

Caractéristiques

Traitement des entrées

  • Plusieurs formats d'entrée pris en charge :
    • Notation CIDR (par exemple, "192.168.1.0/24")
    • Notation générique (par exemple, "192.168.1.*")
    • Fichiers CSV contenant des blocs CIDR
    • Fichiers JSON contenant des blocs CIDR
  • Mode stdin interactif pour la saisie manuelle

Opérations CIDR

  • Valide les plages IP et les blocs CIDR
  • Convertit la notation générique au format CIDR
  • Fusionne les blocs CIDR qui se chevauchent
  • Trie les blocs CIDR pour une organisation optimale

Gestion des sorties

  • Enregistre automatiquement les résultats fusionnés dans un fichier JSON
  • Sortie JSON joliment imprimée
  • Gestion et reporting complets des erreurs

Installation

Assurez-vous que Go est installé sur votre système, puis :

git clone [repository-url]
cd [repository-name]
go build
Entrez en mode plein écran Quitter le mode plein écran

Utilisation

L'outil prend en charge trois modes de saisie :

1. Mode de saisie standard

git clone [repository-url]
cd [repository-name]
go build
Entrez en mode plein écran Quitter le mode plein écran
Voir sur GitHub

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.

Principales fonctionnalités

1. Formats d'entrée flexibles

  • Prend en charge la notation CIDR traditionnelle (par exemple, 192.168.0.0/24)
  • Analyse les notations génériques (par exemple, 192.168..)
  • Convertit les chaînes binaires en blocs CIDR (par exemple, 11000000101010000000000000000000/24)
  • Lit les CIDR à partir de fichiers CSV et JSON

2. Fusion intelligente

  • Fusionne les CIDR qui se chevauchent en un ensemble minimal, réduisant ainsi la redondance
  • Agrège les sous-réseaux plus petits en sous-réseaux plus grands lorsque cela est possible

3. Prise en charge des E/S de fichiers

  • Analyse les entrées des fichiers ou des entrées standard
  • Enregistre les CIDR fusionnés dans un fichier JSON pour un partage et un stockage faciles

Le problème qu'il résout

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.

Comment ça marche

Fonctionnalités de base

1. Analyse et validation CIDR

La fonction parseCIDR garantit que l'entrée est conforme à la notation CIDR valide.

2. Analyse générique et binaire

  • Les caractères génériques (par exemple, 192.168..) sont convertis en CIDR en analysant la longueur du masque
  • Les chaînes binaires (par exemple, 11000000101010000000000000000000/24) sont traduites en adresses IP

3. Fusion CIDR

  • La fonction mergeCIDRs supprime la redondance en fusionnant les plages qui se chevauchent
  • La fonction AggregateCIDRs combine des sous-réseaux plus petits en blocs plus grands et englobants

4. Analyse de fichiers

Lit les CIDR à partir des formats CSV et JSON à l'aide des fonctions parseCSV et parseJSON.

5. Sortie

Les CIDR fusionnés sont enregistrés dans un fichier JSON pour une utilisation facile par d'autres outils ou équipes.

Exemple d'utilisation

Exécution en ligne de commande

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

Exemple de sortie

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.

Procédure pas à pas du code

Analyse de la notation générique

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.

Fusion et agrégation

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.

Analyse de fichiers

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>

Pourquoi y aller ?

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.

Améliorations futures

1. Prise en charge d'IPv6

  • Étendre les fonctionnalités pour gérer les plages IPv6

2. Formats d'entrée dynamiques

  • Ajouter la prise en charge de YAML et XML

3.Interface Internet

  • Créez une application Web légère pour la gestion interactive du CIDR

Conclusion

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!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Golang contre Python: les avantages et les inconvénientsGolang contre Python: les avantages et les inconvénientsApr 21, 2025 am 12:17 AM

GolangisidealforBuildingsCalableSystemsDuetoitSefficiency and Concurrency, tandis que les Implicites de l'Indrecosystem et le Golang'sDesignenCourageSlecElNCORES

Golang et C: concurrence vs vitesse bruteGolang et C: concurrence vs vitesse bruteApr 21, 2025 am 12:16 AM

Golang est meilleur que C en concurrence, tandis que C est meilleur que Golang en vitesse brute. 1) Golang obtient une concurrence efficace par le goroutine et le canal, ce qui convient à la gestion d'un grand nombre de tâches simultanées. 2) C Grâce à l'optimisation du compilateur et à la bibliothèque standard, il offre des performances élevées près du matériel, adaptées aux applications qui nécessitent une optimisation extrême.

Pourquoi utiliser Golang? Avantages et avantages expliquésPourquoi utiliser Golang? Avantages et avantages expliquésApr 21, 2025 am 12:15 AM

Les raisons du choix de Golang comprennent: 1) des performances de concurrence élevées, 2) un système de type statique, 3) un mécanisme de collecte des ordures, 4) des bibliothèques et des écosystèmes standard riches, ce qui en fait un choix idéal pour développer des logiciels efficaces et fiables.

Golang vs C: Performance et comparaison de la vitesseGolang vs C: Performance et comparaison de la vitesseApr 21, 2025 am 12:13 AM

Golang convient au développement rapide et aux scénarios simultanés, et C convient aux scénarios où des performances extrêmes et un contrôle de bas niveau sont nécessaires. 1) Golang améliore les performances grâce à des mécanismes de collecte et de concurrence des ordures, et convient au développement de services Web à haute concurrence. 2) C réalise les performances ultimes grâce à la gestion manuelle de la mémoire et à l'optimisation du compilateur, et convient au développement du système intégré.

Golang est-il plus rapide que C? Explorer les limitesGolang est-il plus rapide que C? Explorer les limitesApr 20, 2025 am 12:19 AM

Golang fonctionne mieux en temps de compilation et en traitement simultané, tandis que C présente plus d'avantages dans la vitesse d'exécution et la gestion de la mémoire. 1.Golang a une vitesse de compilation rapide et convient pour un développement rapide. 2.C fonctionne rapidement et convient aux applications critiques. 3. Golang est simple et efficace dans le traitement simultané, adapté à la programmation simultanée. 4.C La gestion de la mémoire manuelle offre des performances plus élevées, mais augmente la complexité du développement.

Golang: des services Web à la programmation systèmeGolang: des services Web à la programmation systèmeApr 20, 2025 am 12:18 AM

L'application de Golang dans les services Web et la programmation système se reflète principalement dans sa simplicité, son efficacité et sa concurrence. 1) Dans les services Web, Golang prend en charge la création d'applications Web et d'API à haute performance via des bibliothèques HTTP puissantes et des capacités de traitement simultanées. 2) Dans la programmation système, Golang utilise des fonctionnalités proches du matériel et de la compatibilité avec le langage C pour être adapté au développement du système d'exploitation et aux systèmes intégrés.

Golang vs C: repères et performance du monde réelGolang vs C: repères et performance du monde réelApr 20, 2025 am 12:18 AM

Golang et C ont leurs propres avantages et inconvénients dans la comparaison des performances: 1. Golang convient à une concurrence élevée et à un développement rapide, mais la collecte des ordures peut affecter les performances; 2.C fournit des performances plus élevées et un contrôle matériel, mais a une complexité de développement élevée. Lorsque vous faites un choix, vous devez considérer les exigences du projet et les compétences en équipe de manière complète.

Golang vs Python: une analyse comparativeGolang vs Python: une analyse comparativeApr 20, 2025 am 12:17 AM

Golang convient aux scénarios de programmation haute performance et simultanés, tandis que Python convient au développement rapide et au traitement des données. 1.Golang met l'accent sur la simplicité et l'efficacité, et convient aux services back-end et aux microservices. 2. Python est connu pour sa syntaxe concise et ses bibliothèques riches, adaptées à la science des données et à l'apprentissage automatique.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),