Metadata-Version: 2.4
Name: iptool-cli
Version: 1.0.2
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

IPTOOL est un outil en ligne de commande (CLI) développé en Python permettant d'automatiser le dimensionnement et l'adressage IPv4 selon les méthodes **FLSM (Fixed Length Subnet Mask)** et **VLSM (Variable Length Subnet Mask)**.

Ce projet a été réalisé dans le cadre d'un projet tutoré en Génie Logiciel Bac3 à l'Université Protestante de Lubumbashi afin de simplifier les calculs d'adressage IP souvent effectués manuellement.

---

## Fonctionnalités

- Calcul automatique du préfixe CIDR à partir d'un nombre d'hôtes.
- Génération automatique des plans d'adressage FLSM.
- Génération automatique des plans d'adressage VLSM.
- Validation des adresses réseau et des paramètres saisis.
- Exportation des résultats aux formats **CSV** et **JSON**.
- Journalisation des opérations.
- Interface CLI interactive.

---

## Installation

Installer directement depuis PyPI :

```bash
pip install iptool-cli
```
---

## Utilisation

Lancer le shell interactif :

```bash
iptool
```

Les commandes disponibles sont :

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

---

## Exemple

### Calcul du préfixe

```text
IPTOOL > dimensionner

Nombre d'hôtes : 50

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

### Génération FLSM

```text
IPTOOL > flsm

Adresse réseau : 192.168.1.0/24

Nombre de sous-réseaux : 4
```

### Génération VLSM

```text
IPTOOL > vlsm

Adresse réseau : 192.168.10.0/24

Besoins en hôtes : 50 20 10
```

---

## Architecture

Le projet est organisé selon une architecture logicielle en couches comprenant :

- Couche Présentation
- Couche Contrôleur
- Couche Logique Métier
- Couche Utilitaires

Cette organisation facilite la maintenance et l'évolution de l'application.

---

## Arborescence

```text
iptool/
│
├── cli/
├── services/
├── utils/
├── tests/
├── exports/
├── logs/
├── LICENSE
├── README.md
└── pyproject.toml
```

---

## Technologies utilisées

- Python 3
- Typer
- Rich
- Pyfiglet
- ipaddress

---

## Limites

La version actuelle présente certaines limitations :

- prise en charge exclusive d'IPv4 ;
- absence d'interface graphique (GUI) ;
- absence de génération automatique de rapports PDF ;
- absence de sauvegarde des projets d'adressage.

Ces fonctionnalités pourront être intégrées dans les versions futures.

---

## Auteur

**KALAMBA DYANDA Exaucé**

Projet tutoré de Génie Logiciel Bac3 UPL.

---

## Licence

Ce projet est distribué sous la licence MIT.
