Batch incrémentation adresse ip ping
Résolu
Alex
-
dubcek Messages postés 19021 Statut Contributeur -
dubcek Messages postés 19021 Statut Contributeur -
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.
é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.
A voir également:
- Batch incrémentation adresse ip ping
- Ethernet n'a pas de configuration ip valide - Guide
- Comment connaître son adresse ip - Guide
- Darkino nouvelle adresse - Guide
- Adresse mac - Guide
- Adresse ip - Guide
6 réponses
hello
lire la 1ère valeur et la dernière avec set /p
et utiliser une boucle: for /L %%a in (%min%, 1, %max%) ...
lire la 1ère valeur et la dernière avec set /p
et utiliser une boucle: for /L %%a in (%min%, 1, %max%) ...
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
)
)
Bonjour et merci de votre réponse.
J'ai actuellement ceci :
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 !
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai trouver ceci :
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
@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
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
)
)