Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скрипт автоматического переподключения VPN-соединения

Ответить
Настройки темы
CMD/BAT - [решено] Скрипт автоматического переподключения VPN-соединения

Новый участник


Сообщения: 11
Благодарности: 1

Профиль | Отправить PM | Цитировать


Есть такой скрипт:
Код: Выделить весь код
@echo off 

:start 
echo %date% %time%

 echo Start... 
 echo Pinging...
 ping 74.125.39.104 >dev.null && goto pinging || echo ping fault =^> Connect && goto dialing

:redialing
echo %date% %time% redialing >>redial.log
set ARG=0


:dialing
echo %date% %time%
set /a ARG=ARG+1

 echo Disconnect to Ufanet...
rasdial "ufanet_local" /disconnect >dev.null //ufanet_local - имя соединение vpn на локал
rasdial "ufanet_freedom" /disconnect >dev.null //ufanet_freedom - имя соединение vpn на анлим

 echo Disconnect to Local Area Connection...
devcon.exe disable КОД_СЕТЕВОЙ_КАРТЫ >dev.null //Для перезапуска сетевухи
echo sleep 1 sec...
sleep 1

 echo Connect to Local Area Connection...
devcon.exe enable КОД_СЕТЕВОЙ_КАРТЫ >dev.null
echo sleep 20 sec...
sleep 20

echo %date% %time%
 echo Dialing to Ufanet...
 rasdial "ufanet_local" ЛОГИН ПАРОЛЬ &&  rasdial "ufanet_freedom" ЛОГИН ПАРОЛЬ && routing.vbs >dev.null && time /T && echo connected to "Ufanet" || goto dialing //соединение с vpn и запуск скрипта routing.vbs(анлим+локал)
 echo %date% %time% Dialing %ARG% >>redial.log


:pinging
echo sleep 300 sec...
sleep 300

:start_pinging
echo %date% %time%
 echo Pinging...
 ping 74.125.39.104 >dev.null && goto pinging || echo ping fault =^> Retry Pinging && goto retry_pinging

:retry_pinging
 echo sleep 120 sec...
 sleep 120
echo %date% %time% Retry Pinging >>redial.log
 echo Retry Pinging...
 ping 74.125.39.104 >dev.null && goto pinging || echo ping fault =^> disconnect && goto redialing
Нужно немного его подкорректировать. А именно:
1. надо сделать чтобы окно всегда скрывался(а то в таком ввиде он всегда висит как окно).
2. каждые 5 мин. пингует гугл. Можно ли сделать без этого?

Отправлено: 21:28, 07-12-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


1. Скрытие консольных окон.
2. Если убрать нарушится работа скрипта - пингом проверяется наличие инета.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:09, 09-12-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток!

Пользуюсь этим скриптом. Очень помогает при обрывах! (немного переделал его под свое подлючение и убрал перезапуск сетевухи).

Но есть одна проблемка. Частенько у провайдера какие-то непонятки с DNS. И в итоге Ping (и по IP и по именам) проходит нормально = redial не срабатывает.

Помогите пожалуйста к этому скрипту прикрутить (HTTP HEAD запрос) - проверку соединения по HTTP (например на Google.ru).

Заранее благодарен!

Отправлено: 02:28, 06-02-2010 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Strema:
к этому скрипту прикрутить (HTTP HEAD запрос) - проверку соединения по HTTP (например на Google.ru) »
например, через утилиту CURL - заменить по тексту:
Код: Выделить весь код
ping 74.125.39.104 >dev.null
на фрагмент
Код: Выделить весь код
(curl -f -s -I http://www.google.ru | find " 200 OK" >nul)

Последний раз редактировалось amel27, 07-02-2010 в 06:17. Причина: ошибка

Это сообщение посчитали полезным следующие участники:

Отправлено: 05:54, 06-02-2010 | #4


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


amel27 Спасибо большое!!!

Скачал curl. И по фрагменту кода, того, что выше. Все работает. Он мне присылает заголовок сайта (без его содержимого). Это мне и надо было. Но я, честно говоря абсолютный чайник в написании скриптов. Разобраться как работает на готовом, это я еще могу. А вот приспособить эту строчку чтобы она при необнаружении HTTP ресурса делала redial... Чет нехватает мне :-(

Вот мой скрипт по пингу:

Код: Выделить весь код
@echo off
cmdow @ /MIN

:start 
echo %date% %time%

 echo Start... 
 echo Pinging...
 ping Google.ru >dev.null && goto pinging || echo ping fault =^> Connect && goto dialing

:redialing
echo %date% %time% redialing >>redial.log
set ARG=0


:dialing
echo %date% %time%
set /a ARG=ARG+1

 echo Disconnect to Beeline...
rasdial Beeline  /disconnect >dev.null //Beeline - имя соединение vpn на локал


echo %date% %time%
 echo Dialing to Beeline...
 rasdial Beeline 000xxxxxx@internet.beeline.ua xxxxxx   >dev.null && time /T && echo connected to "Beeline" || goto dialing 
 echo %date% %time% Dialing %ARG% >>redial.log

echo sleep 60 sec...
sleep 60

:pinging
echo sleep 60 sec...
sleep 60


:start_pinging
echo %date% %time%
 echo Pinging "Google.ru"...
 ping Google.ru >dev.null || echo ping fault =^> Retry Pinging && goto retry_pinging

echo sleep 60 sec...
sleep 60
 
echo %date% %time%
echo Pinging "ya.ru"...
 ping ya.ru >dev.null && goto pinging || echo ping fault =^> Retry Pinging && goto retry_pinging

:retry_pinging


echo %date% %time% Retry Pinging >>redial.log
 echo Retry Pinging "ya.ru"...
 ping ya.ru >dev.null && goto pinging || echo ping fault =^> disconnect && goto redialing

Ping я убирать не хочу. Иногда и по нему бывают неполадки.
Мне немного стыдно писать такие вопросы. Но, какую строку надо ввести, чтобы при неверном HTTP запросе у меня был redial ???
И при редиале это все сохранялось в лог-файле.

Последний раз редактировалось Strema, 07-02-2010 в 03:05.


Отправлено: 02:37, 07-02-2010 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Strema:
какую строку надо ввести, чтобы при неверном HTTP запросе у меня был redial ??? »
логику вашего скрипта с поочередным пингом двух адресов я не понял, для одного адреса где-то так:
Код: Выделить весь код
:pinging
echo sleep 300 sec...
sleep 300

:start_pinging
echo %date% %time%
echo Pinging...
ping Google.ru >nul && (curl -f -s -I http://www.google.ru|find " 200 OK" >nul) &&^
goto pinging || echo ping fault =^> Retry Pinging && goto retry_pinging

:retry_pinging
echo sleep 120 sec...
sleep 120
echo %date% %time% Retry Pinging >>redial.log
echo Retry Pinging...
ping Google.ru >nul && (curl -f -s -I http://www.google.ru|find " 200 OK" >nul) &&^
goto pinging || echo ping fault =^> disconnect && goto redialing
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:22, 07-02-2010 | #6


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


>dev.null нужно заменить на >NUL в винде перенаправление в нул звучит так.

Отправлено: 17:03, 02-07-2013 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скрипт автоматического переподключения VPN-соединения

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - скрипт для автоматического реконнекта bmp1 Скриптовые языки администрирования Windows 1 09-07-2010 12:01
Интернет - Как в Windows 7 указать адрес VPN Сервера при настройке VPN соединения? Mysticly Microsoft Windows 7 6 24-03-2010 16:30
Нужен скрипт автоматического клика на ссылку ShiShurik Вебмастеру 4 15-02-2009 20:16
VPN/Firewall - Схема автоматического подключения к интернету через VPN Ostap2 Сетевое оборудование 3 02-06-2008 12:41
Как убрать окно переподключения VPN вообще usernews Microsoft Windows NT/2000/2003 2 16-08-2007 12:34




 
Переход