Witam. Jak napisać program który będzie pingował po kolei kilka adresów ip ?? albo gdzie są o tym jakieś artukuły ?? CHodzi o to, że jestem w sieci (około 100 osób) i chce sprawdzić ile ludzi aktualnie jest podłączonych.
Trzybobry!
Popelnilem taki program. Nie jest dopracowany, ale jest funkcjonalny. Wykorzystuje komponenty ICS (Ping). Jak chcesz zrodla mail me.
Generalnie - pinguj w petli (to oczywiste). IP do pingowania - petelka (dla 2 ostatnich oktetow IP aaa.bbb.->>ccc.->>ddd, of course moze byc i dla wszystkich).
Nie mam pod reka zrodel, wiec ich nie umieszcze. Jakby co: zawada_m@interia.pl.
Pozdrawiam[cya]!!
DOPISANE
Co do petli dla oktetow IP - zakres zdefiniuj poprzez SpinEdit'y. Petla bedzie chodzic do zadanej wartosci. To dziala, ale jest wolne...
Maila masz... [cya]
DOPISANE_2
Moj kod w porownaniu z ponizszym jest tak prymitywny, ze lepiej skorzystaj z tego lofix'a... Tak czy siak wysle.
DOPISANE_3
Kod lofix'a (z calym szacunkiem dla niego) nie pinguje paru adresow IP, ale jeden. Pytanie bylo o pingowanie kilku po kolei.
Troszke kodu (TPing ICS)
(procedury komponentu TPing)
Status = TMemo
EdtHost = Tedit
//Pobranie wartości z TEdit
procedure TMainfrm.UstawParametry;
begin
Ping.Address:=EdtHost.Text;
Ping.Size:=StrToInt(EdtSize.Text);
Ping.TTL:=StrToInt(EdtTTL.text);
Ping.Timeout:=StrToInt(EdtTimeOut.text);
end;
procedure TMainfrm.PingDnsLookupDone(Sender: TObject; Error: Word);
begin
if Error 0 then begin
Status.Lines.Add('Host nieznany + EdtHost.Text +
');
Exit;
end;
Status.Lines.Add('Host ` + EdtHost.Text + ` jest ' + Ping.DnsResult);
Ping.Address := Ping.DnsResult;
Ping.Ping;
end;
procedure TMainfrm.PingEchoReply(Sender, Icmp: TObject; Error: Integer);
begin
if Error = 0 then
Status.Lines.Add('Nie moge spingować hosta (' + Ping.HostIP + ') : ' +
Ping.ErrorString)
else
Status.Lines.Add('Odebrano ' + IntToStr(Ping.Reply.DataSize) +
' bajtów od ' + Ping.HostIP +
' w ' + IntToStr(Ping.Reply.RTT) + ' msecs');
Status.Lines.Add('_______________________________________')
end;
procedure TMainfrm.PingEchoRequest(Sender, Icmp: TObject);
begin
Status.Lines.Add('Wysłano ' + IntToStr(Ping.Size) + ' bajtów do ' +
Ping.HostName + ' (' + Ping.HostIP + ')');
Status.Lines.Add('------')
end;
A skąd moge ściągnąć ten komponent ICS ?? W dziale Komponenty jest ale do delphi 1,2,3 a gdzie znajdę do 6 ???
A skąd moge ściągnąć ten komponent ICS ?? W dziale Komponenty jest ale do delphi 1,2,3 a gdzie znajdę do 6 ???