Eu tenho uma conexão OpenVPN do cliente (laptop) para o meu próprio servidor OpenVPN (Synology). Tudo funciona bem.
Eu escrevi um arquivo de lote para proteger minha conexão OpenVPN. De alguma forma, os resultados do ping do batchfile não são os mesmos daqueles digitados manualmente no cmd.
Se eu, por exemplo, tiver a conexão OpenVPN em funcionamento, e eu me desconectar do WiFi, o arquivo batch que protege a conexão OpenVPN mantém obtendo resultados de ping.
Aqui está o código que eu escrevi:
@Echo off
:ping1
Set "Connection="
SetX Connection ""
ping -n 1 192.168.x.x | Find "Lost = 0"
if errorlevel 1 (
goto pingfailed
) else (
goto pingsuccessfull
)
:pingfailed
Set Connection="not connected"
SetX Connection "not connected"
echo %errorlevel%
echo status connection: "%Connection%"
goto pingagain
:pingsuccessfull
Set Connection=connected
SetX Connection connected
echo %errorlevel%
echo status connection: "%Connection%"
goto ping1
:pingagain
echo pinging again...
ping -n 2 192.168.x.x | Find "Lost = 0"
if errorlevel 1 (
echo %errorlevel%
goto pingfailedagain
) else (
goto pingsucceededagain
)
:pingfailedagain
Set Connection="not connected"
SetX Connection "not connected"
echo %errorlevel%
echo status connection: "%Connection%"
goto noping
:pingsucceededagain
Set Connection=connected
SetX Connection connected
echo %errorlevel%
echo status connection: "%Connection%"
goto ping1
:noping
Set Connection="not connected"
SetX Connection "not connected
(Eu uso a variável "Connection" em outro batchfile.) O ping continua recebendo o resultado "lost = 0" até que eu desative o WiFi com
wmic path win32_networkadapter where NetConnectionID="Wireless Network Connection" call disable
de outro arquivo batch.