NetDTL — Guide utilisateur
Guide pratique pour utiliser NetDTL v3.0 : découverte réseau, gestion de l'inventaire, diagnostics et consultation du panneau de brassage.
Présentation
NetDTL est une application web auto-hébergée pour l'inventaire réseau agentless et les diagnostics. Elle fonctionne sur un stack PHP/MySQL/Nmap standard (XAMPP ou LAMP) et ne nécessite aucun agent sur les machines surveillées. Toute la découverte est effectuée par Nmap depuis le serveur qui héberge NetDTL.
L'application couvre cinq domaines : un tableau de bord en temps réel, un inventaire des machines, des diagnostics par machine, la découverte réseau en direct, et la consultation du panneau de brassage. Tout est accessible depuis un navigateur sur le réseau local.
Démarrage rapide
1. Installer les dépendances
pip install wmi pywin32 psutil # NetDTL est en PHP, pas en Python
# Sous Windows avec XAMPP :
# 1. Installer XAMPP (inclut PHP + MySQL + Apache)
# 2. Installer Nmap et noter son chemin d'installation
# 3. Copier les fichiers NetDTL dans htdocs/netdtl/
2. Créer la base de données
CREATE DATABASE netdtl CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'netdtl'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON netdtl.* TO 'netdtl'@'localhost';
3. Configurer db.php
Ouvrir db.php et renseigner les identifiants de base de données, le chemin vers Nmap, la plage CIDR par défaut, et les identifiants d'authentification HTTP Basic.
define('DB_HOST', 'localhost');
define('DB_NAME', 'netdtl');
define('DB_USER', 'netdtl');
define('DB_PASS', 'yourpassword');
define('AUTH_USER', 'admin');
define('AUTH_PASS', 'yourpassword');
define('NMAP_PATH', 'C:/Program Files (x86)/Nmap/nmap.exe');
define('DEFAULT_NETWORK','192.168.1.0/24');
define('APP_VERSION', '3.0');
4. Ouvrir dans un navigateur
Ouvrir http://localhost/netdtl/ (ou l'adresse de votre serveur). Les tables de la base de données sont créées automatiquement au premier chargement. Se connecter avec les identifiants définis dans db.php.
Connexion
NetDTL utilise l'authentification HTTP Basic. À la première ouverture dans une session navigateur, celui-ci affiche une boîte de dialogue de connexion. Saisir le nom d'utilisateur et le mot de passe définis dans AUTH_USER et AUTH_PASS de db.php.
Interface
Chaque page partage la même structure en deux parties : une barre supérieure fixe et une barre latérale gauche permanente.
Barre supérieure : affiche le logo NetDTL (lien vers le tableau de bord), les cinq liens de navigation principaux et le nom de l'utilisateur connecté.
Barre latérale gauche : navigation détaillée. La section supérieure couvre les quatre pages principales (Tableau de bord, Inventaire, Découverte, Brassage). La section inférieure liste les sept outils de diagnostic. La page ou l'outil actif est surligné en vert.
La zone de contenu principale occupe le reste de la fenêtre. Une barre d'outils en haut de chaque page regroupe les actions principales (champs de recherche, boutons d'action, liens d'export).
Pages
Tableau de bord
- Ligne de stats : total des machines connues, compteurs up / down / inconnu, durée depuis le dernier scan.
- Machines récemment vues : les 8 machines les plus récemment actives, avec badge de statut, hostname (lien vers la fiche), IP, OS, date de dernière vue et latence ping.
- Diagnostics récents : les 5 dernières opérations de diagnostic exécutées depuis n'importe quelle page, avec nom de l'outil, cible, date et indicateur de succès.
Inventaire
| Contrôle | Description |
|---|---|
| Recherche | Filtre la liste par hostname, IP, OS ou commentaire à la soumission du formulaire. Correspondances partielles acceptées. |
| ◎ Ping tout | Ping toutes les machines de l'inventaire séquentiellement. Met à jour le statut (up/down) et la latence. Peut prendre une minute sur un inventaire important. |
| + Ajouter | Ouvre un formulaire modal pour ajouter une machine manuellement. Obligatoires : hostname et adresse IP valide. Optionnels : OS, commentaire, port switch, port brassage. |
| ↓ CSV | Télécharge l'inventaire complet en CSV UTF-8 (compatible Excel). Tous les champs, triés par IP. |
Sous la ligne de stats, des boutons pilule permettent de filtrer la liste sur les machines Up, Down ou Inconnu. Le filtre se combine avec le terme de recherche actif.
| Bouton | Action |
|---|---|
| ◎ | Ping cette machine. Met à jour le statut et la latence immédiatement. |
| ⊞ | Ouvre la fiche détaillée de cette machine. |
| ✕ | Supprime cette machine de l'inventaire. Une confirmation JavaScript apparaît au préalable. |
- La colonne MAC affiche ce PC en italique pour la machine qui héberge NetDTL, car Nmap ne peut pas lire sa propre adresse MAC.
- Port switch (bleu) et Port brassage (violet) se renseignent manuellement depuis la fiche machine ou le modal d'ajout.
- Les machines sont triées par ordre IP numérique (
INET_ATON), pas alphabétiquement.
Fiche machine
Affiche IP, MAC, date de dernière vue, latence ping, port switch, port brassage et ports ouverts. Les ports ouverts sont mis à jour automatiquement après un scan de ports depuis cette page.
Cinq boutons déclenchent des actions de diagnostic directement sur l'IP de cette machine. Les résultats s'affichent dans un bloc terminal et sont enregistrés dans l'historique des diagnostics.
| Bouton | Commande exécutée | Effet secondaire |
|---|---|---|
| ◎ Ping | Ping 4 paquets | Met à jour status et last_ping_ms en BDD |
| ⊞ Scan ports | Nmap sur 13 ports courants | Met à jour open_ports en BDD |
| ⤳ Traceroute | tracert vers cette IP | Aucun |
| ⊹ DNS | nslookup sur cette IP | Aucun |
| ⊕ Détecter OS | Nmap -O (requiert admin) | Met à jour os en BDD si détecté |
Les lignes de sortie sont colorées : vert pour les indicateurs de succès (TTL, Réponse, open), orange pour les timeouts et hôtes injoignables, rouge pour les erreurs. Un bouton Copier copie le texte brut dans le presse-papier.
La section inférieure permet de renseigner ou corriger manuellement l'OS, le port switch, le port brassage et un commentaire libre. Cliquer sur Enregistrer pour sauvegarder. Ces données sont préservées lors des scans — un scan de découverte ultérieur n'écrasera jamais une valeur renseignée manuellement avec une valeur vide.
Découverte réseau
Saisir une plage CIDR dans le champ réseau (ex. 192.168.1.0/24) et cliquer sur ▶ Lancer le scan. Le bloc terminal Nmap apparaît immédiatement et les lignes défilent au fur et à mesure. Le tableau des hôtes découverts se remplit ligne par ligne à chaque hôte confirmé.
| Option | Effet | Remarque |
|---|---|---|
| Ports communs | Après le sweep ping, lance un scan de ports sur chaque hôte découvert | Augmente significativement la durée du scan |
| Détection OS | Utilise nmap -O pour le fingerprinting OS | Requiert l'exécution du serveur web en Administrateur / root |
| Identifier NetBIOS | Lance une seconde passe en interrogeant UDP 137 sur chaque hôte actif pour résoudre les noms NetBIOS, groupe de travail et utilisateur connecté | Nécessite UDP 137 accessible sur les cibles |
| Descriptions WMI | Interroge chaque hôte Windows via PowerShell WMI pour obtenir la description de son OS | Fonctionne uniquement sur les cibles Windows autorisant le WMI distant |
Le bouton ■ Arrêter ferme le flux SSE et stoppe l'affichage des résultats. Le processus de scan côté serveur se termine brièvement jusqu'à la fin de la commande Nmap en cours ; les machines déjà découvertes sont sauvegardées.
La ligne de stats se met à jour en temps réel : machines connues, actuellement en ligne, découvertes lors du scan et durée écoulée. À la fin, une ligne est ajoutée au tableau d'historique en bas de page sans rechargement.
Chaque hôte découvert est inséré ou mis à jour dans l'inventaire sur le champ ip. Les valeurs renseignées manuellement (OS, port switch, port brassage, commentaire) ne sont jamais écrasées par des valeurs vides — elles ne sont enrichies que si le scan produit une valeur non nulle.
Diagnostics
| Outil | Entrée | Format de sortie |
|---|---|---|
| ◎ Ping | IP ou hostname | Terminal + ligne de stats (envoyés, reçus, perdus %, latence moy.) |
| ⬡ Scan Nmap | IP, hostname ou CIDR | Tableau des hôtes actifs |
| ⤳ Traceroute | IP ou hostname | Terminal (coloré par réponse de saut) |
| ⊹ DNS Lookup | IP ou hostname | Terminal (sortie nslookup) |
| ⊞ Ports ciblés | IP ou hostname + liste de ports | Tableau des ports avec état et service |
| ⊕ Infos IP locales | Aucune (machine locale) | Terminal (PowerShell Get-NetIPAddress) |
| ⊗ Services actifs | Aucune (machine locale) | Terminal (PowerShell Get-Service, services actifs uniquement) |
Lorsque l'outil Ports ciblés est sélectionné, un champ de ports apparaît dans la barre d'outils. Saisir une liste de numéros de ports séparés par des virgules (ex. 22,80,443,3389). La valeur par défaut est 22,80,443,3389,8080.
Lorsque des résultats sont disponibles, un bouton ↓ CSV apparaît dans la barre d'outils. Il télécharge les lignes brutes comme fichier CSV à une colonne, nommé d'après l'outil et l'horodatage.
Le panneau inférieur affiche les 20 dernières opérations de diagnostic tous outils confondus, avec nom de l'outil, cible, date et indicateur de succès. Cet historique est persisté en base de données entre les sessions.
Panneau de brassage
| Filter | Description |
|---|---|
| Recherche | Recherche libre sur l'étiquette de prise, le nom du local, la référence poste, l'IP et le hostname |
| Sélecteur switch | Restreint les résultats aux ports d'un switch spécifique |
| Sélecteur entité | Restreint les résultats aux ports d'un département ou d'une entité spécifique |
| Column | Description |
|---|---|
| Prise | Étiquette de la prise murale (ex. B31) |
| Type | RJ45 (bleu), RJ11 (orange), ou inconnu (gris) |
| Entité | Département propriétaire. Équipement local en bleu-vert, délégué en vert. |
| Local | Nom du local ou de la pièce |
| Étage | Étage du bâtiment |
| Poste | Référence du bureau ou du poste |
| Switch | Identifiant du switch (orange) |
| Port switch | Port sur le switch (bleu) |
| IP(s) / Hostname(s) | Machines associées à cette prise. Plusieurs machines par port s'affichent séparées par des virgules. |
| Notes | Notes libres |
Privilèges
Certaines fonctionnalités nécessitent que le processus du serveur web dispose de privilèges élevés sur la machine hôte.
| Fonctionnalité | Privilège requis |
|---|---|
| Sweep ping basique (découverte) | Aucun — Nmap -sn fonctionne en utilisateur standard |
Détection OS (nmap -O) | Administrateur (Windows) ou root (Linux) |
Scan SYN (nmap -sS, utilisé avec la détection OS) | Administrateur / root |
| Descriptions WMI | Accès réseau à la cible + WMI distant activé sur la cible |
| Identification NetBIOS (UDP 137) | UDP 137 doit être accessible sur les cibles |
Export CSV
Deux pages proposent un export CSV :
- Inventaire (
?export=csv): full machine list, all fields, sorted by numerical IP. Columns: Hostname, IP, MAC, Vendor, Switch port, Patch port, OS, Status, Open ports, Ping (ms), Last seen, Comment. - Diagnostics : lignes brutes du dernier outil exécuté, sous forme de CSV à une colonne nommé
diag_<outil>_<horodatage>.csv.
Les deux fichiers sont en UTF-8 avec BOM pour un rendu correct dans Microsoft Excel.
Limitations connues
- Traceroute uniquement sous Windows. La page de diagnostics exécute
tracert(commande Windows). Sur un serveur Linux, cet outil ne retourne aucune sortie. - La MAC du serveur n'est pas affichée. Nmap ne peut pas lire l'adresse MAC de la machine sur laquelle il s'exécute. La page d'inventaire détecte ce cas et remplace le champ MAC par ce PC.
- La détection OS nécessite une élévation. Sans privilèges Administrateur ou root,
nmap -One retourne rien silencieusement. - WMI fonctionne uniquement sur les cibles Windows. La requête PowerShell WMI lors de la phase d'enrichissement de la découverte ne réussit que contre des machines Windows avec WMI distant activé et des identifiants accessibles.
- NetBIOS nécessite UDP 137. Le pare-feu Windows ou les pare-feux réseau bloquant UDP 137 empêcheront la résolution des noms NetBIOS lors de la découverte.
- Les données du brassage nécessitent un import externe. La page panneau de brassage n'intègre pas d'outil d'import ; les données doivent être chargées via SQL ou le NetDTL Installer.
- Compte utilisateur unique. Un seul jeu d'identifiants, pas de rôles, pas d'audit par utilisateur.
- Limite de durée de scan. Le serveur impose une limite d'exécution de 10 minutes par scan. Pour les réseaux larges ou lents, scanner par blocs CIDR plus petits.
- Les hôtes down ne sont pas enregistrés. La découverte ne sauvegarde que les machines qui répondent. Les hôtes précédemment actifs et maintenant silencieux ne sont pas marqués down automatiquement ; utiliser Ping tout dans l'inventaire pour cela.
NetDTL Web site