Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Проверка доступности интернета

Ответить
Настройки темы
VBS/WSH/JS - Проверка доступности интернета

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите, настроил скрипт 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]

Отправлено: 07:32, 15-04-2015

 

Ветеран


Сообщения: 547
Благодарности: 36

Профиль | Сайт | Отправить PM | Цитировать


И получишь ты уведомление после того как интернет все выходные, например, не работал ))

Я использую различные конструкции типа "маяков", например которые пингуют "меня" каждые 10 минут. Если в течении 700 сек "пинга" не пришло значит аларм. Также хорошо работает sms информирование (нужен простой шлюз)

В твоём случае можно запоминать предыдущее состояние канала, и если он поднялся то шлешь письмо.
типа:
Код: Выделить весь код
ping  лялялятополя -n 10 | find "TTL" || echo >down.f
ping  лялялятополя -n 10 | find "TTL" && if exist down.f  goto sendmail
goto :EOF

:sendmail
del down.f
rem далее шлешь письмо

-------
консольный клиент telegram для Windows: www.elapser.info


Отправлено: 10:39, 15-04-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Кстати смс это дело. В vbs такое можно реализовать?

Отправлено: 11:03, 15-04-2015 | #3


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата SharkX58:
А еще, при проверке досовское окно открывается, можно его сделать скрытым? »
Используйте Wbem и класс «Win32_PingStatus» вместо исполнения класса Automation WshExec и «ping.exe».

Цитата SharkX58:
Как реализовать, цикл, что если есть интернет, скрипт завершается, если нету, то он делает проверку каждые 10 сек например и как только интернет появляется, сразу отправляет на почту уведомление о сбое? »
Рекомендуется рисование блок-схемы алгоритма. Затем его реализация.

Отправлено: 12:59, 15-04-2015 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Проверка доступности интернета

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Проверка доступности сетевой папки 74_pilot_74 Скриптовые языки администрирования Windows 9 17-06-2021 18:59
CMD/BAT - [решено] Проверка доступности и запуск программы butunin@vk Скриптовые языки администрирования Windows 1 09-04-2015 15:58
CMD/BAT - [решено] Проверка доступности FTP сервера codi28 Скриптовые языки администрирования Windows 2 23-06-2014 11:32
Проверка доступности сайта warikkk Хочу все знать 2 22-04-2013 18:40




 
Переход