Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Проверка пингов и... (http://forum.oszone.net/showthread.php?t=221535)

Performance M 26-11-2011 23:29 1803981

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

Loran_rus 29-11-2011 11:24 1805557

Могу предложить
скрипт на 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 30-11-2011 02:38 1806138

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


Время: 19:12.

Время: 19:12.
© OSzone.net 2001-