Script per l’esecuzione di http ping

In certe situazioni può essere utile eseguire degli http ping, ovvero delle simulazioni di richieste di url, per capire se vi sono problematiche sulla rete o sul firewall.

A tal scopo si può utilizzare il tool gratuito http-ping disponibile al link Ping any URL or web site with our free command-line utility, http-ping.

Per automatizzare l’uso del tool è possibile poi creare uno script dos come il seguente che esegue un determinato numero di chiamate (per default 2000) ad un url (per default https://www.google.com) ad un intervallo prefissato (per default 5 sec), inoltre lo script crea una sottocartella (per default Logs\Google) dove verrà salvato l’output di ogni chiamata.

@ECHO OFF

 

REM Settings
SET url=”https://www.google.com”
SET requests=2000
SET interval=5
SET logspath=%~dp0Logs\Google

 

REM variables
SET pings=0
SET success=0
SET failed=0

 

if not exist “%logspath%” mkdir “%logspath%”
FOR /L %%X IN (1,1,%requests%) DO CALL :loopbody %%X
PAUSE

 

:loopbody
“%~dp0http-ping.exe” -e -n 1 -r -s -c -f “%logspath%\%pings%.txt” %url%
IF %ERRORLEVEL% NEQ 200 (set /A failed=%failed%+1) else (set /A success=%success%+1)

set /A pings=%pings%+1

 

CLS
ECHO Test http ping on %url% [%pings%/%requests%] ECHO Success %success% – Failed %failed%

timeout /t %interval% /nobreak

 

[Update 01]

Per una diagnostica più puntuale è possibile eseguire in parallelo un ping continuo ad esempio allo switch di centro stella dell’infrastruttura di rete o al firewall per discriminare se contemporanemente a problemi di accesso all’url vi sono anche problemi di connessione sulla tratta di rete locale.

Per eseguire un ping con l’informazione della data e dell’ora è possibile usare un comando come questo (nell’esempio viene eseguito il ping all’indirizzo di rete interna 10.0.0.1):

ping -t 10.0.0.1|cmd /q /v /c “(pause&pause)>nul & for /l %a in () do (set /p “data=” && echo(!date! !time! !data!)&ping -n 2 10.0.0.1>nul”

Per reinderizzare l’output su un file è possibile usare il seguente comando

ping -t 10.0.0.1|cmd /q /v /c “(pause&pause)>nul & for /l %a in () do (set /p “data=” && echo(!date! !time! !data!)&ping -n 2 10.0.0.1>nul” >C:\Logs\pingtest.txt