Page 1 sur 1

Batch détecteur interface Web

Posté : 08 août 2019 11:49
par Eik597
Bonjour à tous,

Je suis novice en la matière, j'ai créé un batch simple qui lit des IP dans un fichier.txt et qui pour chaque ligne, lance Chrome avec ces IP, mon objectif est de voir toutes celles qui contiennent une interface WEB (Interface d'imprimante par exemple).

Le problème, c'est qu'actuellement, s'il y a 70 IP et que 3 seulement sont des imprimantes, cela charge les 70 onglets, 3 où le lien est trouvé et 67 autre "page non trouvé". C'est pas pratique..

Je regarde sur le web mais je ne sais pas comment faire pour qu'il aille à l'essentiel et que seul ces 3 interfaces se charge dans Chrome...

Bon niveau code, ca donne ça pour le moment :D :

Il faut juste que Chrome soit lancé une première fois.. sinon, ca créé chaque page une à une, c'est la mort... ^^

@echo off
cls

echo Voir Interface Web
for /f "delims=" %%i in ('type fichier.txt') do "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" %%i

echo.
pause

:D

Je vous remercie pour votre aide !!! Je n'ai pas la moindre idée de comment m'en sortir !

Re: Batch détecteur interface Web

Posté : 08 août 2019 14:29
par Flammrock

Code : Tout sélectionner

@echo off



for /f "delims=" %%i in ('type fichier.txt') do (
    echo;Analyse de "%%~i"...
    call :isPrinter "%%~i" && (
        echo;     - "%%~i" est une imprimante
        call :hasInterfaceWeb "%%~i" && (
            echo;     - "%%~i" possede une interface web
            echo;     - ouverture dans chrome..
            "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "%%~i"
        ) || (
            echo;     - "%%~i" ne possede pas une interface web
        )
    ) || (
        echo;     - "%%~i" n'est pas une imprimante
    )
)




pause>nul&exit
:isPrinter <HOST>
for /f "usebackq delims=" %%i in (`powershell -c "$t = New-Object System.Net.Sockets.TcpClient '%~1', 9100; if($t.Connected) {Write-Host 'OK'}"`) do (
    if "%%~i"=="OK" exit /b 0
)
exit /b 1
:hasInterfaceWeb
for /f "usebackq delims=" %%i in (`powershell -c "$t = New-Object System.Net.Sockets.TcpClient '%~1', 80; if($t.Connected) {Write-Host 'OK'}"`) do (
    if "%%~i"=="OK" exit /b 0
)
exit /b 1

Re: Batch détecteur interface Web

Posté : 08 août 2019 15:56
par Eik597
Un grand merci Flammrock ! A la fois pour la réactivité et l'efficacité :lol:

C'est le top ! Je vais pouvoir l'adapter exactement comme je veux :)