Возможно ли создать один .bat файл для подключения и отключения к интернету?

Нашел такой .bat файл для подключения:
cd %systemroot%\system32 
start rasdial [имя_подключения] [имя_пользователя] [пароль]

и такой для отключения:
cd %systemroot%\system32 
start rasdial [имя_подключения] /disconnect

Мне нужен один файл! - или простой .bat или другой скрипт, который бы проверял, есть ли соединение с интернетом, и если есть, то отключал его, а если нет то подключал.
Спасибо!
  • Вопрос задан
  • 7384 просмотра
Решения вопроса 1
С учетом идеи GavriKos :

ping -n 2 8.8.8.8|Find /I "TTL="||goto no_inet

cd %systemroot%\system32 
start rasdial [имя_подключения] /disconnect
goto end

:no_inet
cd %systemroot%\system32 
start rasdial [имя_подключения] [имя_пользователя] [пароль]

:end
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
Питон вам в руки. Пингуете 8.8.8.8, и в зависимости от доступности выбираете что делать. Можно из питона прям rasdial и вызвать, если что.
Ответ написан
Комментировать
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
скрипт на powershell, но запустится из bat файла, если у вас Windows 8 и выше
powershell "$vpn=(Get-VpnConnection -Name название_ВПН_соединения);if ($vpn.ConnectionStatus -eq 'disconnected') {rasdial название_ВПН_соединения логин пароль} else {rasdial название_ВПН_соединения /disconnect}"


Если OS ниже Windows 8 то вот содержимое батника:
ping хост -n 1 > %TEMP%\ping1.txt
if %errorlevel%==1 (rasdial название_ВПН_соединения логин пароль) else (rasdial название_ВПН_соединения /disconnect)

Во втором случае нужно правильно выбрать хост который будете пинговать :
Если у вас так подключается интернет то это должен быть общедоступный хост из интернета (например 8.8.8.8 ). Если же у вы таким образом подключаетесь к рабочей сети - то хост должен из рабочей сети (недоступной без установленного подключения).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы