![]() |
Ping und Daten Verwerten
Also Hallo erstmal :D
Mein Problem ist dieses: Ich bin relativ neu in Delphi, lern erst seit nem halben Jahr und das auch nur in der Schule, also Basics hab ich relativ gut drauf aber mehr auch net ^^ Also ich möchte eine Adresse anpingen und dann ein grünes oder ein rotes Bild anzeigen (je nach dem ob ping funktioniert hat oder nicht) Also ich könnte mir vorstellen dass es ungefähr so werden wird:
Delphi-Quellcode:
Aber ich hab keine Ahnung wie ich das mit dem Ping umsetzen soll. Das mit dem Rot/Grün weiß ich :P
"ping adresse"
if ping = true then shape1.color := cl_Green; else shape1.color := cl_Red; Freue mich über jede Art von Hilfe :D |
Re: Ping und Daten Verwerten
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab schonmal was dazu gefunden ( ping und trace siehe Anhang )
|
Re: Ping und Daten Verwerten
So und wie benutz ich das? :P
Also wenn ich das so anschau denk ich irgendwie in das Projekt einbeziehen und dann ICMPPing als wert für das grün bzw rote fenster benutzen. Aber es wäre nett wenn du mir erklärst wie ich das genau mache :D |
Re: Ping und Daten Verwerten
Hi,
bisher habe ich nur trace gebraucht und das geht mit Zitat:
Delphi-Quellcode:
procedure TForm1.irgendwas(Sender :TObject);
var ip: DWORD; var b: Array[0..3] of Byte absolute ip; ping : Boolean; begin b[3] := 192; b[2] := 168; b[1] := 0; b[0] := 1; ping := ICMPPing(ip); end; |
Re: Ping und Daten Verwerten
Kann ich mit dem Programm auch DNS-Adressen anpingen?
Und wie benutz ich dann den Ping um das Shape entsprechend zu färben? |
Re: Ping und Daten Verwerten
Dazu brauchst du ein Ereignis, entweder ein Timer-Event oder ein ButtonClick, um etwas zu machen. Setze einfach einen Timer in dein Formular und doppelklicke drauf, dann solltest du in ´TForm1.Timer1Timer(Sender:TObject) landen, welches dann der Form nach meinem obigen Beispiel folgt und nachdem du den Boolean zugewiesen hast, kommt dein Codeschnippel
|
Re: Ping und Daten Verwerten
also ich habe vor über einen Button eine Liste von adressen zu checken, ob diese erreichbar sind.
also "button click" "ping adresse1" if ping = true then shape1.color := cl_green; else shape1.color := cl_red; "ping adresse2" ... usw. Und wie kann ich damit dns adressen anpingen? und wie kann ich die .pas datei überhaupt in mein Projekt einbinden? |
Re: Ping und Daten Verwerten
Also ich hab jetzt bei Delphi "Projekt - Dem Projekt hinzufügen" gemacht und die trace.pas hinzugefügt, dann testweise versucht einen ping auf button-click zu programmieren.
Delphi-Quellcode:
Aber es kommt immer dieser Error:
procedure TForm1.Button7Click(Sender: TObject);
var ip: DWORD; var b: Array[0..3] of Byte absolute ip; ping : Boolean; begin b[3] := 127; b[2] := 0; b[1] := 0; b[0] := 1; ping := ICMPPing(ip); if ping = true then shape1.brush.color := clgreen else shape1.brush.color := clred; end; Zitat:
hab einfach bei uses trace hingeschrieben, aber jetz bleibt immernoch die eine große frage: Wie kann ich DNS-Adressen anpingen? :D Danke schonmal an alle die bisher geholfen haben :P //Edit: Noch ne Frage: Also ich hab es jetzt mit vielen if gemacht und würde gerne wissen ob es nicht besser geht, da ich das irgendwie nicht so schön finde. (Hab schon mit case probiert, geht aber irgendwie nicht) Aber das komische ist, er zeigt immer rot an, obwohl die adresse erreichbar ist. (router-ip) Wahrscheinlicht liegt der Fehler wieder an mir also poste ich mal den quelltext ;D
Delphi-Quellcode:
procedure TForm1.Button7Click(Sender: TObject);
var ip: DWORD; var b: Array[0..3] of Byte absolute ip; ping : Boolean; begin x := 1; if x = 1 then begin b[3] := 192; b[2] := 168; b[1] := 2; b[0] := 1; ping := ICMPPing(ip); if ping = true then shape1.brush.color := cllime else shape1.brush.color := clred; x := 2; end; if x = 2 then begin b[3] := 192; b[2] := 168; b[1] := 2; b[0] := 1; ping := ICMPPing(ip); if ping = true then shape2.brush.color := cllime else shape2.brush.color := clred; x := 3; end; if x = 3 then begin b[3] := 192; b[2] := 168; b[1] := 2; b[0] := 1; ping := ICMPPing(ip); if ping = true then shape3.brush.color := cllime else shape3.brush.color := clred; x := 4; end; if x = 4 then begin b[3] := 192; b[2] := 168; b[1] := 2; b[0] := 1; ping := ICMPPing(ip); if ping = true then shape4.brush.color := cllime else shape4.brush.color := clred; x := 5; end; if x = 5 then begin b[3] := 192; b[2] := 168; b[1] := 2; b[0] := 1; ping := ICMPPing(ip); if ping = true then shape5.brush.color := cllime else shape5.brush.color := clred; x := 0; end; end; Also die 2 großen Fragen: Wie pinge ich DNS-Adressen? und Wie funkioniert das richtig, da ich das Gefühl hab, ich hab in dem Quelltext etwas falsch gemacht? |
Re: Ping und Daten Verwerten
Mal ne Frage, was soll der unnötige If-Abfragen kram?
Code:
x = 1
if x = 1 then... x = 2 if x = 2 then... usw. DNS -> schau dir mal LookupHostName an. // Alternativ: Indy! |
Re: Ping und Daten Verwerten
ich will ja mehrere adressen abfragen, ich hab jetz im beispiel nur eine genommen um zu testen ob der ping geht, was aber auch nicht der fall ist
und mich stören die vielen if-abfragen auch aber wie kann ich das besser umsetzen? mit case färbt sich nur das erste kästchen. Ich hab jetz auch Indy, aber keine Ahnung wie ich das benutzen kann. Ich denke mal es hat was mit der IdICMPClient Kompo zu tun für das pingen und IdDNSResolve um DNS-Adressen aufzulösen. Nun habe ich aber wie gesagt keine Ahnung was ich mit diesen Kompos machen soll. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz