Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Сетевые технологии (http://forum.oszone.net/forumdisplay.php?f=31)
-   -   пинговать заданный IP (http://forum.oszone.net/showthread.php?t=282996)

Rubichek 01-06-2014 16:06 2358471

пинговать заданный IP
 
Здравствуйте, подскажите программу для пинга 3 ip и когда к одному из них не может до стучатся то оповещал

James Marsh 01-06-2014 21:29 2358642

PingPlotter Pro. Вот только не подскажу - shareware ли...

Iska 01-06-2014 21:47 2358647

Цитата:

Цитата Rubichek
подскажите программу для пинга 3 ip и когда к одному из них не может до стучатся то оповещал »

Пакетный файл, скрипт на WSH/PoSH.

diagnoz_ 02-06-2014 01:22 2358712

возможно натолкнет на мысль использовать цикл с созданием соответствующих файлов:
Код:

@echo off
:loop
ping ip_adress -n 10  >> \Users\имя_пользователя\Desktop\ping_ok .txt
ping  ip_adress -n 10  >> \Users\имя_пользователя\Desktop\ping_ok.txt
ping -n  ip_adress | find "TTL=" > nul
if %errorlevel%==1 echo net pinga %date% %time% >>\Users\имя_пользователя\not_ping.txt

goto loop

при удачном ping будет создан текстовый ping_ok .txt на рабочем столе, при не удачном создан not_ping.txt там же.

McLotos 02-06-2014 05:42 2358728

Пару лет назад я писал похожее решение, только в моём варианте батник просто пинговал список машин из файла и если какой-то нет то выдавал Msg с кнопочкой ОК =)))))

Angry Demon 02-06-2014 08:03 2358750

Rubichek, не помню, откуда брал:
Код:

<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("Monitoring "+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>


Rubichek 02-06-2014 18:16 2359002

Angry Demon - хороший скриптик вот только не заработал
нашел вот такой скрипт

<job>
<script language="JScript">

var IP="www.ixbt.com",status;
var ws=new ActiveXObject("WScript.Shell");
var wmi=GetObject("winmgmts:root/cimv2");

while(true)
{
var ping=wmi.ExecQuery("SELECT * FROM Win32_PingStatus WHERE Address = '"+IP+"'");
ping=new Enumerator(ping).item().StatusCode;
if(ping!=status)
{
status=ping;
ws.PopUp(((ping==0)?"":"Не ")+" Пингуется",3,"PING",(ping==0)?64:48)
}
WScript.sleep(1000);
}

</script>
</job>

подскажите пж что дописать что бы уведомление приходило на email когда пинга нет.


Время: 19:19.

Время: 19:19.
© OSzone.net 2001-