|
Вопрос # 6 232/ вопрос закрыт / |
|
Доброго времени суток, уважаемые эксперты!
Помогите мне дописать код.
Мне надо сделать пинг на №-ые ip предположим на 192.168.1.10 - 192.168.1.15 Когда отсутствует сеть то в текстовом файле создал и сохранил отчет в виде:
25-07-2012:16-30 пинг пропал на ip 92.168.1.10
25-07-2012:16-40 пинг появился на ip 92.168.1.10
и в каждой сети отдельный отчет.
пжлст помогите исходником.....
 |
Вопрос задал: POWER (статус: Посетитель)
Вопрос отправлен: 25 июля 2012, 12:58
Состояние вопроса: закрыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 9; последнее сообщение — 26 июля 2012, 11:57; участников в обсуждении: 3.
|
DNK (статус: Студент), 25 июля 2012, 13:13 [#1]:
Мы с радостью! Только не вижу, что дописывать.
"Digital Networked Knight"
|
|
min@y™ (статус: Доктор наук), 25 июля 2012, 13:13 [#2]:
А зачем для этого писать программу? BAT-файла с командами, ИМХО, достаточно.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
POWER (статус: Посетитель), 25 июля 2012, 13:29 [#3]:
а как на bat сделать? я то знаю что такое бат но не знаю что писать и как писать?
|
|
POWER (статус: Посетитель), 25 июля 2012, 13:30 [#4]:
DNK, вот мой исход...
procedure Ping(IP: String; OutMemo:TMemo);
const BUFSIZE = 2000;
var SecAttr : TSecurityAttributes;
hReadPipe,
hWritePipe : THandle;
StartupInfo: TStartUpInfo;
ProcessInfo: TProcessInformation;
Buffer : Pchar;
WaitReason,
BytesRead : DWord;
begin
with SecAttr do
begin
nlength := SizeOf(TSecurityAttributes);
binherithandle := true;
lpsecuritydescriptor := nil;
end;
if Createpipe (hReadPipe, hWritePipe, @SecAttr, 0) then
begin
Buffer := AllocMem(BUFSIZE + 1);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := SizeOf(StartupInfo);
StartupInfo.hStdOutput := hWritePipe;
StartupInfo.hStdInput := hReadPipe;
StartupInfo.dwFlags := STARTF_USESTDHANDLES +
STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := SW_HIDE;
if CreateProcess(nil,
PChar('ping.exe '+IP),
@SecAttr,
@SecAttr,
true,
NORMAL_PRIORITY_CLASS,
nil,
nil,
StartupInfo,
ProcessInfo) then
begin
repeat
WaitReason := WaitForSingleObject( ProcessInfo.hProcess,100);
Application.ProcessMessages;
until (WaitReason <> WAIT_TIMEOUT);
Repeat
BytesRead := 0;
ReadFile(hReadPipe, Buffer[0], BUFSIZE, BytesRead, nil);
Buffer[BytesRead]:= #0;
OemToAnsi(Buffer,Buffer);
OutMemo.Text := OutMemo.text + String(Buffer);
until (BytesRead < BUFSIZE);
end;
FreeMem(Buffer);
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
CloseHandle(hReadPipe);
CloseHandle(hWritePipe);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Ping('192.168.1.10', Memo1);
end;
|
|
DNK (статус: Студент), 25 июля 2012, 14:03 [#5]:
Грёбаный Экибезтуз! Учись оформлять вставку кода!
Обязательно мучиться с ping.exe? Почему не сделать через ICMP.DLL?
"Digital Networked Knight"
|
|
min@y™ (статус: Доктор наук), 25 июля 2012, 14:13 [#6]:
Цитата (DNK):
Обязательно мучиться с ping.exe? Почему не сделать через ICMP.DLL?
Да необязательно... Можно заюзать TPing - компонент из пакета ICS.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
POWER (статус: Посетитель), 26 июля 2012, 10:19 [#7]:
min@y™, можно по подробнее?
|
|
min@y™ (статус: Доктор наук), 26 июля 2012, 10:38 [#8]:
Цитата (POWER):
можно по подробнее?
Ну нафига? Качаешь пакет компонентов (например, вот отсюдова), устанавливаешь их в свою delphi. Среди прочих новых появившихся на палитре компонентов будет компонент TPing. А дальше открываешь демо-пример пингования с помощью этого компонента. У меня в компе он лежит вот тут d:\Компоненты\ICS\Delphi\Internet\PingTst.dpr, а где он у тебя будет, я не знаю. Смотришь внимательно исходник примера и вкуриваешь, как там чо работает.
У меня всё.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
POWER (статус: Посетитель), 26 июля 2012, 11:57 [#9]:
ок, спасибо, попробую потом напишу )))
|
26 сентября 2012, 15:29: Вопрос закрыт (решение принял DNK): Я уж все глаза выплакал, чем всё кончилось.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|