


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 :
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
Utilisation
L'outil prend en charge trois modes de saisie :
1. Mode de saisie standard
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.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

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 !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

OpenSSL, en tant que bibliothèque open source largement utilisée dans les communications sécurisées, fournit des algorithmes de chiffrement, des clés et des fonctions de gestion des certificats. Cependant, il existe des vulnérabilités de sécurité connues dans sa version historique, dont certaines sont extrêmement nocives. Cet article se concentrera sur les vulnérabilités et les mesures de réponse communes pour OpenSSL dans Debian Systems. DebianopenSSL CONNUTS Vulnérabilités: OpenSSL a connu plusieurs vulnérabilités graves, telles que: la vulnérabilité des saignements cardiaques (CVE-2014-0160): cette vulnérabilité affecte OpenSSL 1.0.1 à 1.0.1F et 1.0.2 à 1.0.2 Versions bêta. Un attaquant peut utiliser cette vulnérabilité à des informations sensibles en lecture non autorisées sur le serveur, y compris les clés de chiffrement, etc.

Chemin d'apprentissage du backend: le parcours d'exploration du front-end à l'arrière-end en tant que débutant back-end qui se transforme du développement frontal, vous avez déjà la base de Nodejs, ...

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

Dans le cadre du cadre de beegoorm, comment spécifier la base de données associée au modèle? De nombreux projets Beego nécessitent que plusieurs bases de données soient opérées simultanément. Lorsque vous utilisez Beego ...

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...
