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

Компьютерный форум 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

 

Googler


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

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


TakedaSun, скрипты скриптами, но отладка вашего батника зависит от конкретного оборудования и настроек, а Вы до сих пор не определились, какими командами вы собираетесь подключать/отключать соединение (к слову, в указанной выше теме применяется ДВА способа - RasDial и DevCon)... я могу помочь в логике батника, но команды подключения/отключения тестировать придется самим (увы, VPN под рукой нет)

Отправлено: 16:56, 02-05-2010 | #11



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

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


Пользователь


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

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


Помогите пож-ста кусочком кода...
Нужно сделать на батник пароль.

ЦЕЛЬ-
Сделать в батнике что бы при запуске он проверял на удаленной машине СОДЕРЖИМОЕ текстового файлика (это будут только цифры мин 4 макс 6 цифр), далее запрашивал ввести эти цифры не показывая их на экране и при совпадении введенных цифр и содержимого текстового файлика - команды выполняются дальше, при НЕ совпадении их - команда EXIT.
Путь к файлу такой -
Код: Выделить весь код
\\terminal_1\c$\WINDOWS\addins\pass.txt
Делаю так, работает -
Код: Выделить весь код
@echo off
:pass
echo Enter password:
set /p pwd=
if %pwd%== 777 goto :_1
goto :pass
:_1
ping 127.0.0.1
pause
Но не это цель. Нужно что бы он считал с pass.txt содержимое и при совпадении этого содержимого и введенного с клавиатуры, выполнял команды дальше...
ТАК ВОТ КАК ЗАСТАВИТЬ ЕГО СЧИТЫВАТЬ ПО УКАЗАННОМУ ПУТИ, И СРАВНИВАТЬ ЭТИ ДАННЫЕ???


Очень надеюсь на вашу помощь, заранее благодарю...

Последний раз редактировалось registeruser1, 09-05-2010 в 01:51.


Отправлено: 00:36, 09-05-2010 | #12


Ветеран


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

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


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

set sPath=\\terminal_1\c$\WINDOWS\addins\pass.txt
for /f "usebackq delims==" %%i in ("%sPath%") do set sPassword=%%i

set /p sInPassword=Enter password:

if "%sPassword%" neq "%sInPassword%" exit /b 1
ping 127.0.0.1
pause

endlocal
exit /b 0
registeruser1, в данной теме вопрос выглядит явным оффтопиком.

Я тоже добавлю немного оффтопика:
читать дальше »
при таком подходе можно и не спрашивать никакого пароля. Мало-мальски приемлемый подход:
  • хранение в файле не самого пароля, а его хэша;
  • при вводе пароля — вычисление его хэша;
  • сравнение хэшэй;
и т.д.


P.S. Скорее всего, вычисление хэша (того же MD5, або иных) потребует либо сторонних утилит, либо другого языка — WSH/PowerShell.
Это сообщение посчитали полезным следующие участники:

Отправлено: 04:46, 09-05-2010 | #13


Пользователь


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

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


Iska, спасибо большое - то что надо!
Маленький нюанс еще - можно в этом коде прописать что бы он искал только в первой срочке файла pass.txt, на остальные не обращал внимания?
Спасибо большое...

Сорри если оффтоп...

Отправлено: 07:56, 09-05-2010 | #14


Ветеран


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

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


Я ещё сразу хотел так сделать , но решил не усложнять. Можно, например, так:
Код: Выделить весь код
@echo off
setlocal

set sPath=\\terminal_1\c$\WINDOWS\addins\pass.txt
for /f "usebackq delims==" %%i in ("%sPath%") do set sPassword=%%i&& goto :Break
:Break

set /p sInPassword=Enter password:

if "%sPassword%" neq "%sInPassword%" exit /b 1
ping 127.0.0.1
pause

endlocal
exit /b 0
но, помнится, я видел здесь и более элегантный способ.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:13, 09-05-2010 | #15


Пользователь


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

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


Iska, ...супер!

Но теперь проблемка в связи с этим нарисовалась -
- если удалить файл пароля pass.txt, то в моей консоли можно просто нажать ENTER и без проблем войти в меню.

Нужно к этому коду прикрутить проверку наличия этого файла (pass.txt) и если его нет - надпись типа "SORRY, PASSWORD NO VALID, press any key for exit".
А если файл есть, но пустой, та же надпись - "SORRY, PASSWORD NO VALID, press any key for exit".

Буду очень признателен если поможете в этом...

Отправлено: 10:27, 09-05-2010 | #16


Пользователь


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

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


...решил перевую задачу -

Код: Выделить весь код
dir \\terminal_1\c$\WINDOWS\addins\pass.txt* /a-d 2>nul >nul && goto :menu
goto :error
Нужно решить теперь как при наличии файла НО отсутствии в нем пароля тоже что бы не открывался. (если файл есть - но пустой)

Отправлено: 15:05, 09-05-2010 | #17


Ветеран


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

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


Цитата registeruser1:
если удалить файл пароля pass.txt »
Вообще-то сие задаётся правами.
Код: Выделить весь код
@echo off
setlocal

set sPath=\\terminal_1\c$\WINDOWS\addins\pass.txt

if not exist "%sPath%" echo.SORRY, PASSWORD NO VALID, press any key for exit& pause >nul & exit b /2
for %%i in ("%sPath%") do if "%%~zi" equ "0" echo.SORRY, PASSWORD NO VALID, press any key for exit& pause >nul & exit b /3
for /f "usebackq delims==" %%i in ("%sPath%") do set sPassword=%%i&& goto :Break
:Break
set /p sInPassword=Enter password:

if "%sPassword%" neq "%sInPassword%" exit /b 1
ping 127.0.0.1
pause

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

Отправлено: 19:00, 09-05-2010 | #18


Пользователь


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

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


...Благодарю, работает.! )

P.s.
Я знаю что cmd не поддерживает *** звездочки, а можно как-нибудь скрыть ввод паролей в консоль?
Что бы он команды введенные с клавы понимал, но просто не показывал их...

И еще, весь этот код будет на vista и 7-ке работать? Сам на XP сижу, пока не переходил еще, да и под рукой их нет - не могу проверить...

Спасибо за помощь...
С уважением...

Отправлено: 21:49, 09-05-2010 | #19


Старожил


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

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


Я тоже к этой темке прилпну

Меня интересуют чуток попроще.

Есть интернет соединение по РРРОЕ, иногда бывает такое, что соединение есть, а интернета и пинга нет.

Задача такова, что надо просто разорвать соединение, если нет пинга

Отправлено: 15:35, 07-10-2010 | #20



Компьютерный форум 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




 
Переход