Je suis en train de développer un script DOS afin de répertorier ( a partir d'un fichier .txt contenant une liste d'adresses IP ) les adresse IP ainsi que leur correspondance DNS ou bien un état dit "libre".
Voici mon script :
@echo off
echo ! test en cours ! Ne pas fermer !
date /t >> C:\final.txt
echo. >> C:\final.txt
for /F %%j IN (C:\list.txt) DO (
PING -n 1 -a %%j | FIND "suffixe-dns">NUL
set a=%%j
IF ERRORLEVEL 0 (
PING -n 1 -a %%j | findstr "suffixe-dns" >> C:\DNS.txt
) else (
goto libre
)
)
for /F "tokens=6,9,10,11,12 delims=.[] " %%i in (C:\DNS.txt) do echo %%j.%%k.%%l.%%m %%i>> C:\final.txt
del C:\DNS.txt
:libre
echo %a% libre >> C:\final.txt
cls
color 02
echo.
echo.
echo.
echo Operation bien effectuee
pause
Le soucis vien de la variable "a" pour les adresse qui ne répondent pas et sont donc "libre".
En effet, cette variable garde l'adresse IP du dernier ping effectué pour une adresse occupée.
Exemple du résultat pour trois adresses : x.x.x.48 x.x.x.147 x.x.x.3
L'adresse .147 est libre est les deux autres occupé.
C:\final.tx
05/07/2007
x.x.x.48 toto
x.x.x.3 titi
x.x.x.3 libre
Merci pour votre aide.
