Имя пользователя:
Пароль:
 | Правила  

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

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

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


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

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


Есть проблема с VPN интернетом. Периодически пропадает инет через VPN, при этом он не обрывается, а перестают пинговатся сервера с инета.
Если вручную переподключиться то работает снова.
Нужен батник который проверял бы пинг, например с mail.ru, обрывал соединение при ошибке пинга, потом снова подключался и так по кругу.

На IXBT нашел такой скрипт, но он просто проверяет подключение, а мне нужно что бы был еще и ping

@echo off
:: Имя соединения
set connection=My VPN Connection

:: Задержка между проверками, секунд (примерно)
set pause=10

:LOOP
set connected=0
for /f "delims=" %%i in ('rasdial') do (
if "%%i"=="%connection:"=%" set connected=1
)
if %connected%==0 (
echo %date% %time% "%connection%" connection not detected. Dialing...
rasdial "%connection:"=%"
) else (
echo %date% %time% "%connection%" connection is active.
)
ping -n %pause% 127.0.0.1>nul 2>&1
goto LOOP

Отправлено: 12:23, 02-05-2010

 

Аватара для Delirium

Ветеран


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

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


PERMYAK, правила форума - один вопрос - одна тема. Для своих вопросов создавайте отдельные темы.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 17:14, 07-10-2010 | #21



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

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


Старожил


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

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


Цитата PERMYAK:
Есть интернет соединение по РРРОЕ, иногда бывает такое, что соединение есть, а интернета и пинга нет. »
Этот скрипт должен помочь. Подключается к серверу (в случае неудачи ждёт и снова пытается), как только соединение установлено - периодически пингует заданный сайт, если пинг не проходит (пропал интернет) - принудительно разрывает подключение и подсоединяется заново. Все настройки вынесены в переменные вверху. Пароль и логин хранятся в скрипте, если к компьютеру имеете доступ не только вы - это небезопасно.

Код: Выделить весь код
@Echo Off

Rem Максимальное число реконнектов при потере сервера
Set /A Reconnect="6"
:Main
Rem Имя вашего соединения (скопируйте из "Сетевые подключения")
Set Connection="Sevenline VPN-6"
Rem Имя пользователя
Set User="inquisitor"         
Rem Пароль 
Set Pass="*********"                   
Rem Максимальное кол-во попыток подключения
Set Max="10"
Rem Здесь устанавливаем адрес сайта, по доступности к которому будем проверять наличие интернета. К примеру - 209.85.229.104 - google
Set Site=209.85.229.104
Rem Таймаут между проверками (секунды)
Set TimeOut=120
Set /A TimeOut=TimeOut*1000
Rem Устанавливаем время ожидания до повторного подключения (секунды)
Set RetryTime=300
Set /A RetryTime=RetryTime*1000


Set NC=".\bin\nc.exe" 
Set /A i="0" 
             
:Loop    
    Echo.
    Echo Идет соединение с %Connection%...
    Echo Попытка #%i%
    RasDial %Connection% %User% %Pass% 2>Nul 1>&2
    If %ErrorLevel% GTR 0 (
        Echo Ошибка при соединении с %Connection%, подключаемся заново.
        Set /A i="i + 1"
        If "%i%" == %Max% GoTo Fail
        GoTo Loop
    ) Else (
        Echo.
        Echo Соединено.
        Echo.
        Echo.
        %NC% Wait 15000
        GoTo Watch
    )

:Fail
    Echo.
    Echo.
    Echo.
    Echo Соединится с %Connection% не удалось.
    Echo.
    Echo Ждём и пробуем ещё раз (осталось %Reconnect% попыток).
    %NC% Wait %RetryTime%
    Set /A Reconnect="Reconnect - 1"
    If "%Reconnect%" LEQ "0" Echo Число попыток соединения исчерпано&GoTo EOF
    GoTo Main

:Watch
    Set /A t="0"
    :ReCheck
        Ping -n 1 %Site%>nul
        Set /A t="t + 1"
        Echo [%date% - %time:~-0,8%]  Проверка соединения #%t%
        If %ErrorLevel% GTR 0 (
            Echo Соединение %Connection% недоступно, попытка переподключения...
            RasDial %Connection% /DISCONNECT
            GoTo Main
        ) Else (
            Echo Соединение %Connection% доступно.
            %NC% Wait %TimeOut%
            GoTo ReCheck
        )

:EOF
UPD: Забыл добавить - скрипт требует консольную версию утилиты NirCmd (для организации задержки), создайте рядом со скриптом папку bin и поместите туда exe-файл NirCmd, переименовав его в nc.exe

Отправлено: 21:45, 07-10-2010 | #22


Старожил


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

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


Вопросец по строке:
Ping -n 1 %Site%>nul
Бывает такое, что из-за торрента пинг с первого раза не пройдет. И все комп выключился...
а если поставить значение не 1, а 2 то пинговать будет 2 раза....что будет если 1 раз пройдет а 2-й нет или наоборот???

Отправлено: 12:50, 17-02-2011 | #23


Старожил


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

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


Цитата interminable:
пинговать будет 2 раза....что будет если 1 раз пройдет а 2-й нет »
Если хотя бы раз пройдет - все в порядке, это не будет считаться обрывом соединения.

Отправлено: 14:50, 18-02-2011 | #24



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Записать имя папки в которой лежит батник в переменную а потом эту же папку переим. bobr95 Скриптовые языки администрирования Windows 8 10-04-2012 18:42
[решено] Как сделать,что б батник проверял число ? mitiya Автоматическая установка Windows 2000/XP/2003 27 28-01-2010 08:15
CMD/BAT - батник который считает файлы LeonanVasia Скриптовые языки администрирования Windows 1 28-09-2009 05:55
Доступ - [решено] Растёт время отклика от сервера, потом он недоступен, а потом снова нормальный пинг Lesta Microsoft Windows 2000/XP 9 19-06-2009 13:38
CMD/BAT - [решено] нужен батник который бы пинговал диапазон ip и записывал результат в файл dvassilyev Скриптовые языки администрирования Windows 7 08-05-2009 14:33




 
Переход