Batch incrémentation adresse ip ping

[Résolu/Fermé]
Signaler
-
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
-
Bonsoir,
étant en BTS SIO, je cherche à faire un fichier batch sous windows. Dans celui si je doit pouvoir sélectionner une plage d'adresse ip (avec la commande SET) et ensuite pinger tout les adresses ip de la plage (par exemple toutes les adresses ip de 192.168.1.20 à 192.168.1.75) puis enfin mettre les adresses IP qui répondent dans un fichier et celle qui ne réponde pas dans un autre fichier (avec la commande ERROLEVEL).
Mon réelle problème dans ce fichier batch est l'incrémentation de l'adresse IP, et la saisie de la plage (Je ne sais pas si je doit saisir les 4 octets d'un coup ou alors saisir chaque octet dans une variable différent)
Merci d'avance pour votre aide, Cordialement Alexandre.

6 réponses

Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
hello
lire la 1ère valeur et la dernière avec set /p
et utiliser une boucle: for /L %%a in (%min%, 1, %max%) ...
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
essayer
echo saisiez les 3 premiers octets de la premiere adresse ip comme ceci XXX.XXX.XXX
set /P oct1=
echo puis le 4eme octet de la premiere adresse ip
set /p oct4=
echo enfin le 4eme octet de la derniere adresse ip
set /P oct5=
for /L %%a in (%oct4%, 1, %oct5%) do (
ping %oct1%.%%a -n 3 >NUL
if %errorlevel% EQU 0 (
echo %oct1%.%%a >> ok.txt
) else (
echo %oct1%.%%a >> bad.txt
)

)
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Bonjour et merci de votre réponse.
J'ai actuellement ceci :
@echo off
echo saisiez les 3 premiers octets de la premiere adresse ip comme ceci XXX.XXX.XXX
set /P oct1=  
echo puis le 4eme octet de la premiere adresse ip
set /p oct4=
echo enfin le 4eme octet de la derniere adresse ip
set /P oct5=
for /L %%a in (%oct4%, 1, %oct5%) do ping %oct1%.%%a

Comme vous pouvez le voir, je doit saisir le 4ème octet de chaque adresse séparément. Avez vous un moyen pour incrémenter l'adresse taper comme ceci : 192.168.1.20 à l'adresse taper ainsi : 192.168.1.30 par exemple ?
En fin j'aimerai savoir comment inséré la commande ERRORLEVEL dans ce fichier bat (si elles répondent les adresses seront marquées dans ok.txt et si elles ne répondent pas elles seront écrites dans bad.txt)
Merci d'avance pour votre aide, Alexandre !
Merci pour la réponse, mais lorsque je fait ceci, toutes les adresses ip qu'elles puissent être pinger ou non sont misent dans le fichier ok
J'ai trouver ceci :
@echo off
echo saisiez les 3 premiers octets de la premiere adresse ip comme ceci XXX.XXX.XXX
set /P oct1=  
echo puis le 4eme octet de la premiere adresse ip
set /p oct4=
echo enfin le 4eme octet de la derniere adresse ip
set /P oct5=
for /L %%a in (%oct4%, 1, %oct5%) do (
 ping %oct1%.%%a | find "TTL" >nul
  if errorlevel == 1 (
 echo %oct1%.%%a >> bad.txt
 ) else (
   echo %oct1%.%%a >> ok.txt
 )
)

pause</code>Cela fonctionne parfaitement, j'aimerai savoir maintenant si je peut le faire sans séparé le 4ème octet du reste de l'adresse ip lors la saisie ?
Cordialement, Alexandre
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
essayer
setlocal enabledelayedexpansion
echo saisiez les 3 premiers octets de la premiere adresse ip comme ceci XXX.XXX.XXX
set /P oct1=
echo puis le 4eme octet de la premiere adresse ip
set /p oct4=
echo enfin le 4eme octet de la derniere adresse ip
set /P oct5=
for /L %%a in (%oct4%, 1, %oct5%) do (
ping %oct1%.%%a -n 3 >NUL
if !errorlevel! EQU 0 (
echo %oct1%.%%a >> ok.txt
) else (
echo %oct1%.%%a >> bad.txt
)

)