PDA

Показать полную графическую версию : Проверка пингов и...


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

Loran_rus
29-11-2011, 11:24
Могу предложить
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 вставлено без изменений для сохранения авторства, проверить как работает в данный момент не на чем, так что придется допилить ручками под свой роутер


еше есть вариант подобного скрипта тут (http://www.izero.ru/programmirovanie/vbs-skript-perezagruzki-adsl-modema.html)

Performance M
30-11-2011, 02:38
Огромное спасибо, буду пробовать настроить под свой роутер)




© OSzone.net 2001-2012