Si vous souhaitez scanner une plage d’adresse IP sur votre réseau afin de vérifier la disponibilité d’une ou plusieurs adresses ou inventorier vos machines, voici une astuce toute simple pour le faire sans outils spécifiques,depuis une invite de commande Windows.
Pour cela nous allons utiliser les commandes:
- PING pour tester la disponibilité d’une adresse
- FOR / IN / DO pour balayer la plage IP souhaitée et exécuter le PING sur toutes les IP
- FIND pour n’extraire que la partie intéressante du résultat retourné par le PING
L’exemple suivant consiste à effectuer un PING sur toutes les adresses allant de 192.168.0.1 à 192.168.0.254. A chaque fois que le l’adresse IP répond (Reply ou Réponse à utiliser selon la langue de votre système) l’adresse IP est reportée dans un fichier texte (c:\ipaddresses.txt).
FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply">> c:\ipaddresses.txt
Dans cet autre exemple l’ajout du paramètre -a utilisé avec le PING permet de résoudre l’adresse IP afin d’identifier le nom des serveurs.
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.0.%i | FIND /i "Reply">> c:\ipaddresses.txt
Si toutefois vous recherchez un petit outil dédié, le Freeware Angry IP Scanner est une excellente solution. Il en existe sans doute d’autres que je ne connais pas.
Bonjour,
J’ai déjà une moulinette powershell qui le fait par rapport à une liste d’ip ou de nom de machine (je m’en sert pour les serveurs de ma boite). Je met le code ici mais tu peux le mettre dans cet article ou un nouvel article si tu le souhaite 😉
#———————————-Debut Code——————————–#
# Vérifier la réponse au ping des serveurs
$serveurs = get-content “C:\Liste_Serveurs.txt”
$pingable = @()
$paspingable = @()
foreach ($s in $serveurs) {
if (Test-Connection -ComputerName $s -Quiet -Count 1)
{
$pingable += $s
write-host = “UP $s”
}
else
{
$paspingable += $s
write-host = “DOWN $s”
}
}
#———————————-Fin code———————————–#
Simple mais efficace à mon sens.
@ Bientôt
Super, je suis en vacances mais je test ton script à la rentrée avant de l’ajouter à l’article.
Bonjour,
Premièrement, j’aime beaucoup ton site, j’ai trouvé beaucoup d’infos super utiles et je t’en remercie.
En ce qui concerne les commandes ci-dessus, j’émets juste une remarque concernant le FIND /i “Reply” ou FIND /i “Réponse” suivant la langue.
En effet si on ne veut récupérer que les adresses qui répondent au ping pour ne pas avoir
“Réponse de IP_DE_TA_MACHINE : Impossible de joindre l’hôte de destination”
dans le fichier texte je pense qu’il vaut mieux faire le FIND sur “TTL” car le TTL ne s’affiche que quand on a une réponse au ping ainsi on a uniquement la liste des IP des machines (ou nom si -a) dans notre sortie.
Sinon effectivement c’est très pratique !
bonjour et merci pour les compliments. J’aimerais publier plus de choses encore, mais tout seul c’est difficile. je prends note de ta remarque concernant le ping, d’ailleurs je mettrai a jour cet article et inclura un équivalent en powershell!
A+