Я написал простой пакетный скрипт (который будет преобразован в .exe позже), который проверяет, достигнут ли сервер перед открытием его веб-страницы:
@echo off
ping -n 1 -w 1000 10.###.###.1 | find "TTL=" >nul
if errorlevel 1 (
msg "%username%" You are not connected via VPN. You have to conect to VPN first!
if %ERRORLEVEL% NEQ 0 (
echo You are not connected via VPN. You have to conect to VPN first!
)
) else (
ping -n 1 -w 1000 some.server.name | find "TTL=" >nul
if errorlevel 1 (
ping -n 1 -w 1000 192.168.###.### | find "TTL=" >nul
if errorlevel 1 (
msg "%username%" Couldn't find requested Server. Please contact the administrator!
if %ERRORLEVEL% NEQ 0 (
echo Couldn't find requested Server. Please contact the administrator!
)
) else (
msg "%username%" Connected but using NO-DNS Fallback. Please inform the administrator!
if %ERRORLEVEL% NEQ 0 (
echo Connected but using NO-DNS Fallback. Please inform the administrator!
)
cmd /c start "" "http://192.168.###.###"
)
) else (
cmd /c start "" "http://some.server.name"
)
)
Это прекрасно работает и делает то, что должно.
В любом случае, в случае сбоя, когда сервер по какой-то причине не подключен, все равно требуется некоторое время (я ожидал бы 2 секунды, но на самом деле это занимает до 9 секунд), пока пользователь не получит сообщение в качестве обратной связи ... пока он не не знаю, что код делает что-то.
Интересно, есть ли возможность использовать только пакетный режим для отображения какого-то «экрана-заставки» (сообщение / изображение) только во время эхо-запросов, пока он не подключится или не отобразится сообщение об ошибке, позволяющее пользователю знать, что скрипт запущен?
Я говорю только с использованием пакета, потому что, поскольку это всего лишь своего рода "умная" URL-ссылка, я бы не хотел прилагать слишком много усилий, например, с использованием Java или чего-то в этом роде.