Кто-нить может сделать программку?

A4

Старожил
Может кому-то, кто под win умеет программы писать не будет лень размяться на безвозмездной основе?
Нужна программа, которая бы висела в трее, пинговала бы регулярно некие адреса и писала результаты в лог-файл (д_м_г.txt).
Настройки: два адреса и периодичность. Под Win XP.
Хочу посмотреть, сколько часов в сутки инет работает :)
 

Ilya007

Старожил
ping же в ручную надо писать=))а тут некую автоматизацию надо.
 

A4

Старожил
Прохожий":3m4xdjqe сказал(а):
а воспользоваться мудростью дяди билли и его командами at и ping какая религия не позволяет? :)
а это позволит избежать регулярного появления чОрного окошка на экране?
кроме того, я кроме ping никаких команд win не знаю :)
 

amazing

Старожил
Можно на wsh запускать те же самые команды с ключами и не будет никаких cmd-окошек. Но лучше использовать средства самого wsh :)
 

A4

Старожил
2Прохожий. Не понял я нифига =) В at судя по синтаксису можно указывать только одно время запуска. Как делать вывод в файл не понял. Про date и time не понял ваще =)
 

A4

Старожил
Прохожий":2l18mcif сказал(а):
надо ж, какой ты дремучий :) времена голого DOS не застал, поди? про всякие *nix я и не спрашиваю. перенаправление вывода в файл делается так : ping -n 1 host >>filename.txt date и time - чтобы в этот же файл писать текущую дату и время.
застал. только я этим не занимался уже фиг знает сколько лет, и соответственно нифига не помню.
в вашем варианте возможна конструкция типа >>$date.txt ? и с AT я так и не понял, там одно время запуска можно указывать, или несколько?

Добавлено спустя 4 минуты 20 секунд:

короче мне проще на php накатать телегу =) класс я похоже нашёл, осталось только cron под виду найти
 

amazing

Старожил
нафиг крон? в винде свой планировщик заданий.
положи туда команду
Код:
c:\php\php.exe script.php
Пути и имена файлов свои только ;)
 

A4

Старожил
спасибо всем за советы.

Добавлено спустя 1 час 18 минут 20 секунд:

ну вообщем
Код:
<?php
require_once "Net/Ping.php";
$ping = Net_Ping::factory();
if(!PEAR::isError($ping)) 
{
   $response = $ping->ping('80.237.16.17');
   // print_r($response);
   $filename = "ping.log";
   $handle = fopen($filename, 'a');
   $content = date("d").".".date("m").".".date("Y")." / ".date("H:i:s")."  -  ".$response->_raw_data[7].$response->_raw_data[8]."\n";
   fwrite($handle, $content);
   fclose($handle);
}
?>

запускается через nnCronLite (планировщик сцуко что-то про аккаунт и пароль твердит)

Выдаёт http://10.2.7.20/. На выходных перенаправлю выход в базу и статистику посчитаю =)

Вопрос: как чОрное окно php.exe убрать? =)
 

A4

Старожил
wsh - это какой-нибудь winshell? тогда не катит :?
 

hostt

Старожил
Уже не помню где Amazing приводил пример (что-то мне поиском не удалось отыскать)
У меня, например, чтоб не лицезреть перловское окно демона от вуду-чата в автозагрузке лежит vbs файлик (не знаю, насколько правильно я его составил, но ..... работает уже оч давно)
Код:
On Error Resume Next 

Dim WshShell 

Set WshShell = WScript.CreateObject("WScript.Shell") 

WshShell.Run "daemon_win.pl", TRUE
 

Glorius

Старожил
Можно на С++ сделать:
Код:
#include <time.h>
#include <string>
#include <windows.h>


int _tmain(int argc, _TCHAR* argv[])
{
	using namespace std;
    char tmpbuf[128];
	struct tm *newtime;

	while(TRUE)
	{
		time_t aclock;
		time(&aclock);

		string  str ("");
		string srv ("www.gtn.ru");

	
		str = "ping.exe ";
		str += srv;
		str += " >> ";

		newtime = localtime( &aclock );
		
		strftime(tmpbuf, 128, "%Y-%m-%d-%H-%M-%S.log", newtime);
	
		str += tmpbuf;

		const char *c_str = str.c_str();
		system(c_str);

		Sleep(30000); // каждые 30 сек
	}

	return 0;
}

Если хочешь чтобы скрывалось в трее, нужно делать оконное приложение, как именно это делается - куча примеров. Можно зарегить как службу, тогда тоже консоль не будет маячит перед глазами.
 

A4

Старожил
Glorius":10igsdjy сказал(а):
Можно на С++ сделать
да у меня компиляторов-то никаких и нет. кроме того, php я знаю достаточно хорошо, т.е. могу усовершенствовать как хочу впоследствии, не напрягаясь...

Glorius":10igsdjy сказал(а):
Можно зарегить как службу, тогда тоже консоль не будет маячит перед глазами.
а где это делается? может php.exe можно как службу того самого? :)
 

Glorius

Старожил

Glorius

Старожил
Как альтернатива пинга для проверки доступности сервера можно попытаться открыть какой-нибудь image. Если ошибка - нет сети. Можно даже на JScripte'e сделать.
 

A4

Старожил
Выяснилось, что php_win32service работает только с 5-м php, а у меня четвёртый. Я поставил 5, зарегистрировал скрипт как сервис, но окно так и не убралось. Может просто руки кривые :) В итоге плюнул, сейчас обратно на четвёртом пингую потихоньку.
 

A4

Старожил
Нужна помощь по регулярным выражениям.
Суть - заменить определенную последовательность символов, расположенную между двумя другими символами на новую.
Практически - есть html-код со списками вида
Заголовок списка :
Код:
<br>&nbsp;&nbsp;&nbsp;&nbsp;элемент;
<br>&nbsp;&nbsp;&nbsp;&nbsp;элемент;
<br>&nbsp;&nbsp;&nbsp;&nbsp;элемент;
.
надо брэйк с пробелами поменять на li. желательно ещё вставить ul после двоеточия и закрыть его после точки :)
 

A4

Старожил
а там особые регулярные выражения? я вообще в своём текстовом редакторе хочу их по автозамене прогнать. на крайний случай в php-скрипт впишу.
 

A4

Старожил
Прохожий":2xzogihy сказал(а):
у тебя 666 сообщений :) а вообще регулярные выражения сами по себе ничего не заменяют, заменять может функция, их использующая. я правильно понял, что тебе надо заменить "<br>&nbsp;&nbsp;&nbsp;&nbsp;" на li? а вот где взять двоеточие в твоем примере, чтобы "вставить ul" и точку, чтобы закрыть - не понял.
у меня в редакторе два поля в автозамене - "что" и "на что". в "что" можно писать регулярные выражения. да, правильно понял. но в тексте эти же брейки с неразрывными пробелами стоят и перед абзацами, а мне нужно расставить маркеры только в списках. к счастью списки там нормальные, с положенными знаками препинания - т.е. перед перечислением элементов ставится двоеточие, потом идёт перечисление элементов с точкой с запятой на конце строки, после последнего элемента стоит точка :)
вот реальный код:

Код:
<br>&nbsp;&nbsp;&nbsp;&nbsp; При заключении трудового договора лицо, поступающее на работу, предъявляет работодателю:<br>&nbsp;&nbsp;&nbsp;&nbsp; паспорт или иной документ, удостоверяющий личность;<br>&nbsp;&nbsp;&nbsp;&nbsp; трудовую книжку, за исключением случаев, когда трудовой договор заключается впервые или работник поступает на работу на условиях совместительства;<br>&nbsp;&nbsp;&nbsp;&nbsp; страховое свидетельство государственного пенсионного страхования;<br>&nbsp;&nbsp;&nbsp;&nbsp; документы воинского учета - для военнообязанных и лиц, подлежащих призыву на военную службу;<br>&nbsp;&nbsp;&nbsp;&nbsp; документ об образовании, о квалификации или наличии специальных знаний - при поступлении на работу, требующую специальных знаний или специальной подготовки.
<br>&nbsp;&nbsp;&nbsp;&nbsp; В отдельных случаях с учетом специфики работы настоящим Кодексом, иными федеральными законами, указами Президента Российской Федерации и постановлениями Правительства Российской Федерации может предусматриваться необходимость предъявления при заключении трудового договора дополнительных документов.

мне нужно только в списке поставить маркеры.

уф, 667 :)

т.е. если я правильно понимаю, правило по сути должно выглядеть следующим образом: "1) найти последовательность (любое количество символов) между двоеточием и точкой (до первой точки). 2) найти в ней брэйк с тремя неразрывными пробелами (любое количество повторений)."
 
Верх