CMD/BAT - Проверка пингов и...

Ответить
Аватара пользователя
Performance M

CMD/BAT - Проверка пингов и...

Сообщение Performance M »

Добрый вечер форумчане! Нужно сделать такой батник, который проверял бы подключение к инету, каждые 15 минут проверяя его, и если вдруг нету пингов, то выполнял бы такие действия - нет пинга, перезагрузить роутер ASUS rtN56u и перезазгрузить системник, на котором всё это выполняется). А если пинги идут, то нужно, чтобы батничек "заснул на 15 минут, и потом снова проснулся, и так до бесконечности". или...может у когото есть решение лучше)Спасибо заранее!
Аватара пользователя
Loran_rus

Re: CMD/BAT - Проверка пингов и...

Сообщение Loran_rus »

Могу предложить
скрипт на VBS




Код:

Код: Выделить всё

On Error Resume Next 
Call Main
Private Sub Main
Set objShell = WScript.CreateObject("WScript.Shell")
Set objExecObject = objShell.Exec("ping www.ya.ru")   'адрес или IP ресурса
Do While Not objExecObject.StdOut.AtEndOfStream
	strText = objExecObject.StdOut.ReadLine()
	If Instr(strText, "(100% ") > 0 Then
		Call Action
		objShutDown = objShell.Run ("Cmd /c ShutDown -r -f -t 30" , 1, True)
	End If
	If Instr(strText, "(0% ") > 0 or Instr(strText, "(25% ") > 0 or Instr(strText, "(50% ") > 0 or Instr(strText, "(75% ") > 0 Then    ' можно выбрать процент потерь для выполнения Action
		Call NoAction
	End If
Loop
End Sub
Private Sub Action
'************************************************************* 
' Имя: DSL-2500-NewSession.vbs 
' Язык: VBScript 
' Описание: Рестарт ADSL в D-link DSL-2500U (включая BRU)
' AndreTM (C)opyright, 2009 
'************************************************************* 
On Error Resume Next 
Dim WshShell, theTelnet
Set WshShell = WScript.CreateObject("WScript.Shell") 
' WScript.Echo("Set IP_CONNTRACK_MAX in D-Link 2500u") 
theTelnet = WshShell.Run("cmd /c telnet.exe", 1, False) 
WScript.Sleep 500 
WshShell.AppActivate "%comspec%" 
WScript.Sleep 100 
WshShell.SendKeys "set logfile DSL-2500.log~" 
WScript.Sleep 1000 
WshShell.SendKeys "open 192.168.1.1~" ' адрес вашего роутера
WScript.Sleep 7500 ' здесь и далее время (в мс) подбирайте по скорости ответа роутера
WshShell.SendKeys "admin~" ' логин
WScript.Sleep 3500 
WshShell.SendKeys "admin~" ' пароль
WScript.Sleep 1500 
WshShell.SendKeys "adsl connection --down~" 
WScript.Sleep 6000 
WshShell.SendKeys "adsl connection --up~" 
WScript.Sleep 6000 
WshShell.SendKeys "logout~" 
WScript.Sleep 2000 
WshShell.SendKeys "exit~" 
WScript.Sleep 2000 
WshShell.SendKeys " quit~" 
End Sub
Private Sub NoAction
WScript.Sleep 900000	'время = 15мин * 60сек * 1000
Call Main
End Sub








Все что в процедуре Action вставлено без изменений для сохранения авторства, проверить как работает в данный момент не на чем, так что придется допилить ручками под свой роутер





еше есть вариант подобного скрипта
тут
Аватара пользователя
Performance M

Re: CMD/BAT - Проверка пингов и...

Сообщение Performance M »

Огромное спасибо, буду пробовать настроить под свой роутер)
Ответить

Вернуться в «Скриптовые языки администрирования Windows»