PDA

Показать полную графическую версию : пинговать заданный IP


Rubichek
01-06-2014, 16:06
Здравствуйте, подскажите программу для пинга 3 ip и когда к одному из них не может до стучатся то оповещал

James Marsh
01-06-2014, 21:29
PingPlotter Pro. Вот только не подскажу - shareware ли...

Iska
01-06-2014, 21:47
подскажите программу для пинга 3 ip и когда к одному из них не может до стучатся то оповещал »
Пакетный файл, скрипт на WSH/PoSH.

diagnoz_
02-06-2014, 01:22
возможно натолкнет на мысль использовать цикл с созданием соответствующих файлов:

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

Angry Demon
02-06-2014, 08:03
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
Angry Demon - хороший скриптик вот только не заработал http://s020.radikal.ru/i706/1406/6d/d9f4e14521a8.jpg
нашел вот такой скрипт

<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 когда пинга нет.




© OSzone.net 2001-2012