Ce projet implémente un serveur DHCP simplifié et un client DHCP en Java.
Le serveur attribue des adresses IP dynamiques à des clients sur une plage définie, gère les baux et les expire automatiquement. Le client communique avec le serveur via sockets pour obtenir une adresse IP.
| Fonctionnalité | État | Description |
|---|---|---|
| Serveur DHCP | Totalement fonctionnelle | Gère une plage d’adresses IP, attribue, renouvelle et expire les baux automatiquement. |
| Client DHCP | Totalement fonctionnel | Envoie DISCOVER, reçoit OFFER, envoie REQUEST et reçoit ACK, puis affiche l’IP attribuée. |
| Gestion des baux (lease) | Totalement fonctionnelle | Le serveur libère automatiquement les IP expirées toutes les 10 secondes. |
| Interface console serveur | Totalement fonctionnelle | Permet de consulter la liste des IP disponibles, les baux en cours, et d’arrêter le serveur. |
| Logging des actions serveur et client | Totalement fonctionnel | Les événements sont enregistrés dans un fichier dhcp.log. |
code/Client.java— programme client DHCPcode/Serveur.java— programme serveur DHCP avec interface consolecode/IPPool.java— gestion de la plage IP et des bauxcode/ThreadComm.java— thread de communication serveur/clientcode/DHCPEnum.java— énumération des types de messages DHCPcode/DHCPMessage.java— classe de message DHCP sérialisablecode/DHCPLogger.java— gestion des logs dans fichier
Place-toi dans le répertoire parent de code/ et exécute :
javac code/*.javajava code.ServeurLe serveur écoute sur le port 4555. La console permet de taper les commandes :
list: affiche les IP disponiblesleases: affiche les baux actifs et leur temps restantexit: stoppe le serveur
java code.ClientLe client contacte le serveur, obtient une IP, et affiche les étapes du dialogue DHCP.
- Le fichier de logs
dhcp.logest créé dans le dossier d'exécution. - Le serveur utilise une plage IP par défaut de
192.168.1.10à192.168.1.20. - Le bail (lease) est fixé à 60 secondes.