forum.rastrnet.ru  

Вернуться   forum.rastrnet.ru > Компьютеры и всё, что с ними связано > Программируем

 Сообщения за день       Добавить альбом       Поиск      Правила форума  


Ответ
 
Опции темы Опции просмотра
Старый 08.04.2008, 15:08   #1
Fox
-=Добрею=-
 
Аватар для Fox
 
Регистрация: 15.08.2005
Сообщений: 580
По умолчанию *.BAT

Добрый день господа программисты
Необходима ваша помощь в следующем вопросе, а именно требуется помощь в написании не сложного на первый взгляд батничка.

Суть в следующем:
Необходимо пинговать некоторое количество адресов
потом формировать отчет и кидать его на почту.

есть маленькие наработачки

@echo off
SET PING_COUNT=4
SET PING_TOMEOUT=1000
echo Pinguem servera
ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.1
ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.2
ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.3
ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.4
ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.5
ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.6
ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.7
ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.8
ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.9
ping -w %PING_TOMEOUT% -l 1000 -n %PING_COUNT% 192.168.0.10


Вот такой скрипт еще в инете нашел, заинтересовала отправка результата на почту
Может как то можно две эти идеи совместить?

<job>
<script language="JScript">

// Мониторинг доступности хоста штатными средствами Windows. При изменении состояния отправляет e-mail об этом.
// Работает полностью в фоне. Не создает окон и процесса. Не болтается в трее. Не поддерживает скины
// Не будет работать на Win98/2000 - только XP/2003/Vista/LongHorn.

var adr="1.1.1.1",interval=5; // Пингуемый адрес и интервал, сек
var from="from@host.ru",to="to@host.ru",smtp="smtp.host.ru"; // Параметры электрической почты

var wmi=GetObject("winMgmts:root/CIMv2"); // Подключаемся к пространству имён WMI

if(WScript.arguments.length&&WScript.arguments(0)=="stop") // Если запущено с параметром "stop"
{ // то останавливаем мониторинг,
try{wmi.Get("__EventFilter.Name='pingMon'").Delete_()} catch(e){};
try{wmi.Get("SMTPEventConsumer.Name='pingMonEv'").Delete_()} catch(e){};
WScript.echo("Monityoring "+adr+" stopped!"); // печатаем сообщение об этом,
WScript.quit(); // и завершаем скрипт
}
// запуск без параметра = старт сервиса
with(wmi.Get("__EventFilter").SpawnInstance_()) // создаем экземпляр фильтра событий
{ // и настраиваем его на изменения состояния PingStatus
Name="pingMon";
QueryLanguage="WQL";
Query="select * from __InstanceModificationEvent within "+interval+" where TargetInstance ISA 'Win32_PingStatus' and TargetInstance.Address='"+adr+"'";
Put_();
}

with(wmi.Get("SMTPEventConsumer").SpawnInstance_()) // создаем экземпляр потребителя событий
{ // SMTPEventConsumer - отправка почты
Name="pingMonEv"; // задаем ему параметры и шаблоны
FromLine=from;
ToLine=to;
SMTPServer=smtp;
Subject="host %TargetInstance.Address% status changed to %TargetInstance.StatusCode%";
Message="Ping(%TargetInstance.Address%): status=%TargetInstance.StatusCode%, delay=%TargetInstance.ResponseTime%.";
Put_();
}

with(wmi.Get("__FilterToConsumerBinding").SpawnInstance_()) // создаем экземпляр связки
{
Filter=wmi.Get("__EventFilter.Name='pingMon'").Path_; // связываем фильтр с потребителем
Consumer=wmi.Get("SMTPEventConsumer.Name='pingMonEv'").Path_;
Put_(); // запускаем мониторинг
}
WScript.echo("Monitoring "+adr+" started!"); // и печатаем сообщение об этом

</script>
</job>
__________________
Плавно перехожу на -=Линукс=-
http://krasadmin.ru

Последний раз редактировалось Fox; 08.04.2008 в 16:57.
Fox вне форума   Ответить с цитированием
Старый 08.04.2008, 17:13   #2
Fox
-=Добрею=-
 
Аватар для Fox
 
Регистрация: 15.08.2005
Сообщений: 580
По умолчанию

Еще наработка

@echo off
ping -n 1 192.168.0.1 > ping.txt

if errorlevel 1 goto send
goto exit
: send
sendfile.exe 1.1.1.1 host@domin.ru
: exit


Но тут стоит отметить что используется не чистый бат. А пользуется программой для отправки почты, хотелось бы узнать у гуру. Как с помощью бата отправить почту.
__________________
Плавно перехожу на -=Линукс=-
http://krasadmin.ru
Fox вне форума   Ответить с цитированием
Старый 08.04.2008, 23:14   #3
Casy
Программист
 
Аватар для Casy
 
Регистрация: 18.07.2004
Сообщений: 455
Отправить сообщение для Casy с помощью ICQ
По умолчанию

Можешь попробовать из батника запускать telnet, зацепиться к SMTP серваку и отправить письмо. Порыскай в инете, там много манов, как телнетом почту отправлять. Не знаю, получится-ли, но попробовать стоит. Только используй серваки без SMTP авторизации, а то замучаешься. Как вариант можешь поднять SMTP сервер у себя с помощью утилиты EasySMTP
Casy вне форума   Ответить с цитированием
Старый 09.04.2008, 11:00   #4
Fox
-=Добрею=-
 
Аватар для Fox
 
Регистрация: 15.08.2005
Сообщений: 580
По умолчанию

Пример
telnet smtp.host.ru 25

HELO Имя своего компа

MAIL FROM:<name@host.ru>

> RCPT TO:<name2@2@host.ru>

Символ ">" - в начале строчки указывает на то, что эту команду посылает клиент, а символом "<" помечаются ответы сервера.

Или так

telnet mail.server.com 25
helo 193.122.323.211 //Ваш текущий ip
mail from:lala@blablabla.net
rcpt to:target@mailserver.com
data
Subject:Ha ha ha
Text See you!
.
quit

Так осталась только решить вопрос с авторизацией
__________________
Плавно перехожу на -=Линукс=-
http://krasadmin.ru

Последний раз редактировалось Fox; 09.04.2008 в 13:15.
Fox вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 04:20. Часовой пояс GMT +7.


Powered by vBulletin® Version 3.8.4 Patch Level 5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Форум открыт в июле 2004 г.
Кошки и котята Красноярска и Сибири Живой Мир Сибири