| Autor |
Beitrag |
Hopsekey
      
Beiträge: 26
|
Verfasst: Mi 11.06.03 10:59
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
      
Beiträge: 52
Windows XP Professional; Windows Server 2003
Delphi 7 Prof, Delphi 8.Net
|
Verfasst: Do 12.06.03 00:31
Titel: Ping
Hallo Hopsekey
So wirds gemacht:
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
      
Beiträge: 453
WinXP Prof/Home, Win98SE (nur auf Server)
D6 Pers
|
Verfasst: 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??
_________________ mensch, menschen können auch probleme haben...
|
|
specialwork
      
Beiträge: 52
Windows XP Professional; Windows Server 2003
Delphi 7 Prof, Delphi 8.Net
|
Verfasst: 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
|
|
patrick
      
Beiträge: 1481
WIN2k, WIN XP
D6 Personal, D2005 PE
|
Verfasst: Do 12.06.03 12:26
schaut mal n paar zeilen weiter unten.
um das thema ping geht es auch hier:
www.delphi-forum.de/viewtopic.php?t=8291
_________________ Patrick
im zweifelsfall immer das richtige tun!!!
|
|
BungeeBug
      
Beiträge: 901
|
Verfasst: 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
MfG BungeeBug
|
|
Bela Urlaub
      
Beiträge: 453
WinXP Prof/Home, Win98SE (nur auf Server)
D6 Pers
|
Verfasst: 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
_________________ mensch, menschen können auch probleme haben...
|
|
specialwork
      
Beiträge: 52
Windows XP Professional; Windows Server 2003
Delphi 7 Prof, Delphi 8.Net
|
Verfasst: 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
|
|
DarkLord
      
Beiträge: 34
|
Verfasst: Do 12.06.03 15:26
Du kannst dir die aktuelle Indy Version kostenlos runterladen auf: www.indyproject.org !
|
|
Hopsekey 
      
Beiträge: 26
|
Verfasst: Do 12.06.03 17:33
ich bedanke mich für eure antworten, aber @ BungeeBug wie geht das denn nun schon wieder?
|
|
Hopsekey 
      
Beiträge: 26
|
Verfasst: 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
      
Beiträge: 901
|
Verfasst: 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
|
|