Данный пример восстановил из книги М.Фленова “Delphi глазами Хакера”. Пришлось дополнительно установить библиотеку Internet Component Suite (ICS). Она бесплатная и относительно легко установилась. Итак, как “пропинговать ” тот или иной компьютер?
Что будет на форме?
2 label, 2 Edit, 1 Button, 1 RichEdit, 1 Ping из палитры ICS
Какие события обрабатываем?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
procedure TForm1.Button1Click(Sender: TObject); begin richedit1.Clear; richedit1.lines.add('Поиск '+edit1.Text+' '); ping1.Size:=56;//strtoint(edit2.Text); ping1.Timeout:=1000; ping1.DnsLookup(edit1.Text); end; procedure TForm1.FormCreate(Sender: TObject); begin richedit1.Clear; end; procedure TForm1.Ping1DnsLookupDone(Sender: TObject; Error: Word); begin if error<>0 then begin richedit1.Lines.Add('Хост не найден'); exit; end; richedit1.Lines.Add('Хост '+Edit1.Text+' ' +ping1.DnsResult); ping1.Address:=ping1.DnsResult; ping1.Ping; //Запуск ping... end; procedure TForm1.Ping1EchoReply(Sender, Icmp: TObject; Status: Integer); begin if error<>0 then richedit1.Lines.Add('Не могу выполнить операцию ping '+ ping1.ErrorString) else richedit1.Lines.Add('Получено '+Inttostr(ping1.Reply.DataSize)+' байт от' +ping1.HostIP+ ' за '+inttostr(ping1.Reply.RTT)+' милисекунд'); end; procedure TForm1.Ping1EchoRequest(Sender, Icmp: TObject); begin Richedit1.Lines.Add('Посылка '+inttostr(ping1.Size)+' байтов на '+ping1.HostName); end; |