Entwickler-Ecke
Internet / Netzwerk - Ping? generell und für Delphi
Hopsekey - Mi 11.06.03 10:59
Titel: Ping? generell und für Delphi
kennt von euch jemand den befehl um alle rechner im netz anzupingen (nicht einzeln, sondern mit einem befehl sprich rundping). sich also alle adressen zeigen lassen?
kann man über delphi per source den ping-befehl ausführen?
riesen DANKE und bitte den quelltext mal so als Bsp. mit bei
specialwork - Do 12.06.03 00:31
Titel: Ping
Hallo Hopsekey
So wirds gemacht:
Delphi-Quelltext
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: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78:
| unit UPing;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdIcmpClient, Spin, StdCtrls, ScktComp, ExtCtrls, Buttons;
type TForm1 = class(TForm) Memo1: TMemo; Edit1: TEdit; Label1: TLabel; Label2: TLabel; SpinEdit1: TSpinEdit; SpinEdit2: TSpinEdit; Label3: TLabel; Timer1: TTimer; SpinEdit3: TSpinEdit; Label4: TLabel; SpeedButton1: TSpeedButton; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); procedure SpinEdit3Change(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure Edit1Change(Sender: TObject); private public end;
var Form1: TForm1; mPing: TIdIcmpClient;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject); begin try mPing.ReceiveTimeout := SpinEdit2.Value; mPing.Host := Edit1.Text; mPing.Port:= SpinEdit1.Value; mPing.Ping; Memo1.Lines.Add('Received from Host: '+mPing.ReplyStatus.FromIpAddress+' Bytes: '+inttostr(mPing.ReplyStatus.BytesReceived)); except on E: Exception do begin Memo1.Lines.Add('Host not received'); end; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin mPing:=TIdIcmpClient.Create(self); end;
procedure TForm1.SpinEdit3Change(Sender: TObject); begin Timer1.Interval:=SpinEdit3.Value; end;
procedure TForm1.SpeedButton1Click(Sender: TObject); begin Timer1.Enabled:=not Timer1.Enabled; SpeedButton1.Down:=Timer1.Enabled; end;
procedure TForm1.Edit1Change(Sender: TObject); begin Timer1.Enabled:=false; SpeedButton1.Down:=false; end;
end. |
Gruß, Tom
Bela Urlaub - Do 12.06.03 02:09
Hi, hab das mal ausprobiert....
Bei mir kommt n Fehler: "IdIcmpClient"
Quelltext
1:
| [Fataler Fehler] ...: Datei nicht gefunden: 'IdIcmpClient.dcu' |
Also... was ist da für eine Datei???
Wohl nicht bei Windows 98 dabei oda??
specialwork - Do 12.06.03 09:56
Titel: IdIcmpClient.dcu
Hallo Bela Urlaub,
Ich glaube nicht, das es etws mit dem Betriebssystem zu tun hat. Es hat wohl eher etwas mit Deiner Delphi Version zu tun. Ich verwende zur zeit Delphi 6 Professional. Solltest Du ebenfalls D6 verwenden, dann schau doch mal nach, ob Du die Indy Komponenten installiert hast.
Gruß, Tom
BungeeBug - Do 12.06.03 12:30
Hi, es gibt bessere Möglichkeiten als einmal das ganze Netz anzupingen und zu gucken wer antwortet ... das is erstens "belastend" für deinen Rechner und das gesammt Netz (Wenn BNC Netz) besser ist es ein UDP - Bordcast zusenden und dann alle Rechner die sich anwesend melden an zupingen ... geht sogar schneller :P
MfG BungeeBug
Bela Urlaub - Do 12.06.03 13:54
Titel: Re: IdIcmpClient.dcu
| specialwork hat folgendes geschrieben: |
Hallo Bela Urlaub,
Ich verwende zur zeit Delphi 6 Professional. Solltest Du ebenfalls D6 verwenden, dann schau doch mal nach, ob Du die Indy Komponenten installiert hast.
Gruß, Tom |
Indy- Komponenten???? was das? Ich verwende D6 Personal
specialwork - Do 12.06.03 14:31
Hallo Bela Urlaub,
Die Indy Komponenten sind wenigstens in der Delphi Professional Version integriert.
In Deinem Falle würde ich mich nun an die Idee von BungeeBug halten. Jedoch hast Du dann das Problem, dass Du nur Rechner im LAN und nicht in LAN und WAN anpingen kannst.
Gruß Tom
Hopsekey - Do 12.06.03 17:33
ich bedanke mich für eure antworten, aber @ BungeeBug wie geht das denn nun schon wieder?
Hopsekey - Do 12.06.03 18:26
ich habs gerade mal ausprobiert, bei mir komm die fehlermeldung:
ungültiges zeichen in der eingabedatei undzwar bei StdCtrls.
Dann will er die Variants.dcu.
dann kommt die vorhergehende fehlermeldung mit ungültiges zeichen bei IdIcmpClient.
Dann giebt er ruhe. Ich habe delphi 5.0 Enterprise, entwerder ist die helfte nicht installiert, oder ich weiß nicht.
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Buttons, ExtCtrls, Spin, StdCtrls, Variants, IdIcmpClient, ScktComp;
BungeeBug - Do 12.06.03 19:07
Hi,
du kannst (wenn du die Indy installiert hast) nen UDP - Server (den brauch man dazu glaub ich ... wenn nich dann wars der Client) auf die Form setzen und dann die IP 192.168.0.255 (nur wenn die auf dein Netzwerk zutrifft ... sonst musste se so ändern das die ersten 3 Abschnitte zu deinem Netz passen, der letzte muss immer 255 heissen) mit nem BroardCast anpeilen ... als Ergebniss sollte sich dann jeder Rechner in deinem Netz melden. So und das dann nur noch in ne Stringlist oder nen Array laden und nach und nach jeden anpingen. So hasst du vermieden das dein Rechner auf ne Antwort wartet wo keine kommt ...
MfG BungeeBug
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!