Metadata-Version: 2.4
Name: iptool-cli
Version: 1.0.0
Summary: CLI tool for IPv4 subnetting automation using FLSM and VLSM
Author: KALAMBA DYANDA Exaucé
License-Expression: MIT
Keywords: network,ipv4,subnetting,flsm,vlsm,cli,python
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Information Technology
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Operating System :: OS Independent
Classifier: Topic :: Internet
Classifier: Topic :: System :: Networking
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: typer
Requires-Dist: rich
Requires-Dist: pyfiglet
Dynamic: license-file

# IPTOOL

## Conception et réalisation d’un outil CLI d’automatisation du dimensionnement et de l’adressage IP basé sur FLSM et VLSM

### Présentation

IPTOOL est un outil en ligne de commande (CLI) développé dans le cadre d’un projet tutoré de Génie Logiciel.

L’outil permet d’automatiser les opérations de dimensionnement des réseaux IPv4 et la génération de plans d’adressage à l’aide des techniques FLSM (Fixed Length Subnet Mask) et VLSM (Variable Length Subnet Mask).

L’objectif principal est de réduire les erreurs humaines, accélérer les calculs réseau et fournir aux administrateurs réseau un outil simple, fiable et réutilisable.

---

## Problématique

Dans la pratique, le dimensionnement des réseaux et le découpage en sous-réseaux sont souvent réalisés manuellement.

Cette approche présente plusieurs inconvénients :

* Risque élevé d’erreurs de calcul ;
* Perte de temps lors de la conception des réseaux ;
* Difficulté à gérer des plans d’adressage complexes ;
* Manque d’automatisation.

Afin de résoudre ce problème, ce projet propose un outil capable d’effectuer automatiquement ces opérations.

---

## Objectifs

L’outil permet :

* Le dimensionnement d’un réseau à partir d’un nombre d’hôtes ;
* La génération de plans d’adressage FLSM ;
* La génération de plans d’adressage VLSM ;
* Le calcul automatique des préfixes ;
* Le calcul automatique des masques de sous-réseau ;
* La détermination des plages d’adresses utilisables ;
* La détermination des adresses de broadcast ;
* L’exportation des résultats ;
* La journalisation des opérations réalisées.

---

## Fonctionnalités

### Dimensionnement

Calcul automatique du préfixe réseau adapté au nombre d’hôtes demandé.

Exemple :

Nombre d’hôtes : 15

Résultat :

Préfixe : /27

---

### FLSM

Découpage d’un réseau en plusieurs sous-réseaux de taille identique.

Exemple :

Réseau : 192.168.1.0/24

Sous-réseaux : 4

---

### VLSM

Découpage d’un réseau en plusieurs sous-réseaux de tailles différentes selon les besoins réels.

Exemple :

Réseau : 192.168.1.0/24

Besoins :

50 20 10

---

### Exportation

Export des résultats :

* JSON
* CSV

Les fichiers sont automatiquement enregistrés dans le dossier :

exports/

---

### Journalisation

Toutes les opérations réalisées sont enregistrées dans le dossier :

logs/

---

## Architecture du projet

```text
iptool/
│
├── iptool/
│   ├── services/
│   │   ├── dimensionnement.py
│   │   ├── flsm.py
│   │   └── vlsm.py
│   │
│   ├── cli/
│   │   ├── main.py
│   │   └── shell.py
│   │
│   ├── utils/
│   │   ├── display.py
│   │   ├── exporter.py
│   │   ├── logger.py
│   │   └── ip_utils.py
│
├── tests/
├── logs/
├── exports/
├── pyproject.toml
└── README.md
```

---

## Installation

Cloner le projet :

```bash
git clone <url_du_projet>
```

Se placer dans le dossier :

```bash
cd iptool
```

Installer le projet :

```bash
pip install -e .
```

---

## Utilisation

Lancer l’application :

```bash
iptool
```

---

### Commandes disponibles

```text
help
dimensionner
flsm
vlsm
export json
export csv
version
clear
exit
```

---

### Exemple de session

```text
IPTOOL > dimensionner

Nombre d'hôtes : 15

Préfixe nécessaire : /27
```

---

### Exemple FLSM

```text
IPTOOL > flsm
```

Entrées :

```text
192.168.1.0/24
4
```

Résultat :

Tableau complet d’adressage réseau.

---

### Exemple VLSM

```text
IPTOOL > vlsm
```

Entrées :

```text
192.168.1.0/24
50 20 10
```

Résultat :

Tableau complet d’adressage réseau.

---

## Validation

Les fonctionnalités principales sont couvertes par des tests unitaires réalisés avec Pytest.

Exécution :

```bash
python -m pytest
```

---

## Limites actuelles

La version actuelle présente les limites suivantes :

* Support IPv4 uniquement ;
* Pas de prise en charge IPv6 ;
* Pas d’export PDF ;
* Pas d’interface graphique ;
* Pas de sauvegarde dans une base de données ;
* Pas de génération automatique de diagrammes réseau ;
* Pas d’intégration avec des équipements réels.

---

## Perspectives d’amélioration

Les évolutions futures envisagées sont :

* Support IPv6 ;
* Génération automatique de rapports PDF ;
* Génération de diagrammes réseau ;
* Intégration avec des équipements Cisco ;
* Génération automatique de configurations réseau ;
* Déploiement sous forme d’application distribuable.

---

## Auteur

KALAMBA DYANDA Exaucé

Projet Tutoré – Licence 3 Génie Logiciel
2026
