![]() |
Проверка доступности интернета
Подскажите, настроил скрипт ping.vbs для проверки в локальной сети доступности сервера и отправке на почту уведомления, если недоступен. Хочу теперь его использовать еще для мониторинга работы интернета, но не знаю как решить вопрос. Если нет интернета, соответственно он не сможет мне отправить письмо. Как реализовать, цикл, что если есть интернет, скрипт завершается, если нету, то он делает проверку каждые 10 сек например и как только интернет появляется, сразу отправляет на почту уведомление о сбое?
А еще, при проверке досовское окно открывается, можно его сделать скрытым? [code] compip = "ya.ru" ' ip адрес сервера, который будем пинговать LogFilePath = "c:\ping.txt" ' лог-файл timeout = "30" ' таймаут проверки в секундах On Error Resume Next Set objShell = CreateObject("WScript.Shell") ' Пингом проверим что сервер доступен Set objScriptExec = objShell.Exec("%comspec% /c ping.exe -n 2 " & compip) strPingResults = LCase(objScriptExec.StdOut.ReadAll) If InStr(strPingResults, "ttl=") Then ' доступен ' пишем лог Set FSO = CreateObject("Scripting.FileSystemObject") Set LogFile = FSO.OpenTextFile(LogFilePath, 8, True) LogFile.WriteLine Now & " " & compip & " dostypen" LogFile.Close 'MsgBox compip & " пингуется " Else ' не доступен sendmilo() ' пишем лог Set FSO = CreateObject("Scripting.FileSystemObject") Set LogFile = FSO.OpenTextFile(LogFilePath, 8, True) LogFile.WriteLine Now & " " & compip & " net dostypa" LogFile.Close sub sendmilo() v_Conf = "http://schemas.microsoft.com/cdo/configuration/" Set o_Mess = CreateObject("CDO.Message") With o_Mess .To = "" 'куда отправляем .From = "Имя отправителя <email>" 'имя отправителя + Email .Subject = "" 'Тема письма .TextBody = "" 'Сообщение .AddAttachment "C:\ping.txt" 'Прикрепить файл .TextBodyPart.Charset = "windows-1251" 'русская кодировка With .Configuration.Fields .Item(v_Conf & "sendusing") = 2 'без использования каталога Server Exchange .Item(v_Conf & "smtpserver") = "" 'Адрес SMTP-сервера .Item(v_Conf & "smtpauthenticate") = 1 'Тип авторизации .Item(v_Conf & "sendusername") = "" 'здесь имя пользователя без @ .Item(v_Conf & "sendpassword") = "" 'пароль .Item(v_Conf & "smtpserverport") = 465 'порт (альтернативный - 465) .Item(v_Conf & "smtpusessl") = True 'использовать ли шифрованое подключение SSL .Item(v_Conf & "smtpconnectiontimeout") = 60 'Время до завершения повторных попыток подключения .Update End With .send End With Set o_Mess = Nothing End Sub ' MsgBox compip & " не пингуется. " End If '/////////////////////////////Функция отправки почты [code] |
И получишь ты уведомление после того как интернет все выходные, например, не работал ))
Я использую различные конструкции типа "маяков", например которые пингуют "меня" каждые 10 минут. Если в течении 700 сек "пинга" не пришло значит аларм. Также хорошо работает sms информирование (нужен простой шлюз) В твоём случае можно запоминать предыдущее состояние канала, и если он поднялся то шлешь письмо. типа: Код:
ping лялялятополя -n 10 | find "TTL" || echo >down.f |
Кстати смс это дело. В vbs такое можно реализовать?
|
Цитата:
Цитата:
|
Время: 10:46. |
Время: 10:46.
© OSzone.net 2001-