Batch incrémentation adresse ip ping

Résolu
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

  1. Contributeur
    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
    )

    )
    1. 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
      1. 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
        1. Contributeur
          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. 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 !
            1. Contributeur
              hello
              lire la 1ère valeur et la dernière avec set /p
              et utiliser une boucle: for /L %%a in (%min%, 1, %max%) ...