Доброго времени суток.
Задача такова.
Есть страничка (в локальной сети) на нее выводятся коды ошибок с коментариями типа:
Код:
|
1) 0001 - ошибка копирования
2) 0002 - нет связи с клиентом 30 минут
.... |
необходимо смотреть на страничку и при появлении кода 0002 поднимать панику в виде окна предупреждения и отсылки на 2 IP адреса сети сообщения.
Поскольку я не програмер, часть скриптов нашел, часть сочинил сам и получил следующее:
ШАГ1
Запускается конструкция каждые 3 минуты скрыто файлом Start_find_php.vbs
Код:
|
Set WshShell = CreateObject("WScript.Shell")
do
WshShell.Run "cmd.exe /c find_php.cmd", 0, true
WScript.Sleep 180000
loop |
ШАГ2 Стартует командный файл find_php.cmd
Код:
|
do
START httpGet.wsf /WAIT
cls
echo off
find /i "0002" index1.php>nul
IF %errorlevel% == 0 (send_php.vbs)
loop |
ШАГ 2.1 стартует файл httpGet.wsf (найден в сети, автор неизвестен)
<job>
<script language="JScript">
httpGet("http://192.168.1.200/1/index1.php");
function httpGet(url)
{
var fname=url.replace(/.+\//,"");
with(new ActiveXObject("WinHttp.WinHttpRequest.5.1"))
{
open("GET",url);
send();
if(status==200)
with(new ActiveXObject("ADODB.Stream"))
{
type=1;
open();
write(responseBody);
saveToFile(fname,2);
}
}
}
</script>
</job>
Шаг 2.2 Затем анализирую полученый файл скриптом find_php.cmd и в случае нахождения запускается скрипт send_php.vbs
ШАГ3 (можно было бы это прописать и в cmd файле, но тогда не было бы возможности не отображать окон и не ждать завершения отправки)
Код:
|
Set WshShell = CreateObject("WScript.Shell")
WshShell.run "net send 192.168.1.14 Нет связи с клиентом", 0, False
WshShell.run "net send 192.168.1.4 Нет связи с клиентом", 0, False |
Конструкция работает, но хотелось бы иметь 1 "правильный" файл, а не толпу файлов пинающих друг друга. И еще из всего содержимого мне непонятен только скрипт из ШАГа 2.1, но есть желание разобраться. Надеюсь здесь мне помогут.
Спасибо.