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