Introduction au ping multiple sous Windows
La commande ping est l’un des outils réseau les plus fondamentaux pour diagnostiquer la connectivité entre votre machine et une adresse IP ou un nom de domaine. En environnement professionnel ou pour la gestion de réseaux domestiques complexes, il est souvent nécessaire de vérifier la disponibilité de plusieurs hôtes en même temps. Plutôt que d’ouvrir plusieurs fenêtres d’invité de commandes et de lancer des pings un par un, il existe des méthodes efficaces pour automatiser cette tâche. Cet article vous présente les différentes techniques pour exécuter un ping sur plusieurs adresses IP simultanément, que ce soit avec l’invité de commandes classique, PowerShell ou des outils tiers.
Utiliser une boucle for dans l’invité de commandes
La première méthode consiste à utiliser une boucle for dans le terminal Windows. Cette approche est idéale pour sonder une plage d’adresses IP contiguë, comme par exemple toutes les adresses d’un sous-réseau local. La syntaxe de base est la suivante :

for /L %i in (1,1,254) do ping -n 1 -w 20 192.168.0.%i | find Reply
Cette commande parcourt les valeurs de 1 à 254 avec un pas de 1. Pour chaque itération, elle lance un ping unique vers l’adresse 192.168.0.suivie du nombre et filtre les résultats pour n’afficher que les lignes contenant le mot Reply. Le paramètre -w 20 définit un délai d’attente de 20 millisecondes pour chaque réponse, ce qui accélère le processus. Cette solution est simple, ne nécessite aucune installation supplémentaire et fonctionne sur toutes les versions de Windows. Cependant, elle exécute les pings de manière séquentielle, ce qui signifie que le temps total est la somme des délais de chaque tentative.

Ping de plusieurs adresses spécifiques en une seule commande
Il est également possible de spécifier plusieurs adresses IP distinctes dans une même commande ping. Sur Windows, la syntaxe autorise de lister plusieurs cibles séparées par des espaces. Par exemple :
ping 8.8.8.8 1.1.1.1 8.8.4.4

Cette commande envoie des requêtes à chaque adresse, mais les exécute l’une après l’autre, sans parallélisation réelle. Le résultat affiche les statistiques de chaque hôte dans l’ordre où ils ont été spécifiés. Cette méthode est pratique pour un petit nombre de machines, mais elle devient vite fastidieuse si vous devez surveiller des dizaines d’adresses. Elle reste intéressante pour une vérification rapide de quelques serveurs DNS publics.
PowerShell et la cmdlet Test-Connection
PowerShell offre une approche plus moderne avec la cmdlet Test-Connection. Contrairement à l’invité de commandes classique, cette commande peut interroger plusieurs ordinateurs en parallèle, ce qui réduit considérablement le temps d’exécution. Voici un exemple :

Test-Connection -ComputerName 8.8.8.8, 1.1.1.1, 8.8.4.4 -Count 1
Test-Connection remplace avantageusement le ping traditionnel. Elle retourne des objets que vous pouvez filtrer ou formater. Avec le paramètre -Count 1, chaque hôte ne reçoit qu’une seule requête. La parallélisation est automatique, ce qui permet de traiter plusieurs cibles simultanément. Pour les administrateurs réseau, cette cmdlet est un outil puissant car elle s’intègre facilement dans des scripts plus complexes. Vous pouvez par exemple combiner Test-Connection avec des conditions pour générer des rapports sur l’état de vos équipements.

Exécution parallèle avec PowerShell et Start-Job
Pour un contrôle plus fin et la possibilité de lancer des pings continus sur plusieurs adresses, PowerShell propose le mécanisme des jobs. Start-Job permet d’exécuter une commande en arrière-plan, indépendamment du thread principal. Voici un exemple de script qui ping plusieurs IP en continu :
```powershell $ips = 8.8.8.8, 1.1.1.1, 8.8.4.4 foreach ($ip in $ips) { Start-Job -ScriptBlock { param($address) while ($true) { Test-Connection -ComputerName $address -Count 1 -Quiet Start-Sleep -Seconds 2 } } -ArgumentList $ip } ```Ce script crée un job pour chaque adresse IP. Chaque job exécute une boucle infinie qui teste la connectivité toutes les deux secondes. Les résultats sont renvoyés sous forme booléenne avec le paramètre -Quiet. Cette technique est idéale pour une surveillance en temps réel, mais elle nécessite une gestion des jobs pour éviter d’accumuler des processus en arrière-plan. Vous pouvez arrêter tous les jobs avec la commande Get-Job | Stop-Job. Cette approche est très flexible et peut être adaptée à des besoins de monitoring réseau avancé.
Outils tiers : PingInfoView de NirSoft
Si vous préférez une interface graphique, l’utilitaire gratuit PingInfoView de NirSoft est une excellente option. Il permet de charger une liste d’adresses IP ou de noms d’hôtes à partir d’un fichier texte ou de les saisir manuellement. L’outil ping chaque cible simultanément et affiche les résultats en temps réel dans un tableau coloré. Vous pouvez configurer le nombre de requêtes, le délai entre chaque test et le temps d’attente pour chaque réponse. Les colonnes indiquent l’état actuel, le temps de réponse moyen, le nombre de paquets perdus et bien d’autres métriques. PingInfoView est portable, ne nécessite pas d’installation et fonctionne sur toutes les versions de Windows. C’est un outil très apprécié des techniciens réseau pour diagnostiquer rapidement un parc de machines.
Tableau comparatif des méthodes
| Méthode | Type | Simultanéité | Facilité d’utilisation |
|---|---|---|---|
| Boucle for dans cmd | Ligne de commande | Séquentiel | Moyenne |
| Ping multiple avec espaces | Ligne de commande | Séquentiel | Élevée |
| Test-Connection PowerShell | PowerShell | Parallèle | Élevée |
| Start-Job PowerShell | PowerShell | Parallèle | Avancée |
| PingInfoView (NirSoft) | Interface graphique | Simultané | Très élevée |
Astuces pour optimiser vos pings multiples
Pour tirer le meilleur parti de ces techniques, gardez à l’esprit quelques bonnes pratiques. Réduisez le nombre de requêtes par hôte à un seul ping lors d’un scan rapide. Utilisez l’option -n 1 dans l’invité de commandes ou -Count 1 dans PowerShell. Ajustez le délai d’attente avec -w pour éviter d’attendre trop longtemps sur des hôtes injoignables. Si vous travaillez avec une plage d’adresses importante, préférez PowerShell pour sa capacité à paralléliser les opérations. Enfin, pour une surveillance continue, les jobs PowerShell ou un outil graphique comme PingInfoView sont plus adaptés qu’une boucle dans cmd.
Liste des avantages du ping simultané
- Gain de temps considérable par rapport à des tests individuels.
- Détection rapide des pannes sur un réseau local.
- Possibilité d’intégration dans des scripts de supervision automatique.
- Visualisation claire de l’état de plusieurs serveurs ou postes de travail.
- Compatibilité avec les environnements Windows sans logiciel supplémentaire.
Conclusion
Ping multiple simultané est une compétence précieuse pour tout administrateur réseau. Que vous utilisiez l’invité de commandes classique avec une boucle for, la cmdlet Test-Connection de PowerShell, ou un outil tiers comme PingInfoView, chaque méthode a ses avantages. Le choix dépend de votre niveau de confort avec les scripts et de la complexité de votre réseau. Pour des tâches ponctuelles, la boucle for reste simple et efficace. Pour une gestion plus poussée, PowerShell offre une flexibilité inégalée. Et pour une approche visuelle immédiate, l’interface graphique de NirSoft est imbattable. Maîtrisez ces techniques et vous gagnerez un temps précieux dans vos diagnostics réseau.
Références
Les informations présentées dans cet article sont basées sur des sources fiables et des documentations officielles. Pour approfondir vos connaissances, consultez les ressources suivantes : SuperUser explique l’utilisation de la boucle for pour pinger une plage d’adresses IP dans l’invité de commandes Windows. Microsoft Learn détaille la syntaxe et les paramètres de la commande ping classique. La documentation de PowerShell sur Test-Connection fournit des exemples d’utilisation avancée. Enfin, le site NirSoft présente l’outil PingInfoView avec ses fonctionnalités de ping simultané.




