AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Ping und Daten Verwerten
Thema durchsuchen
Ansicht
Themen-Optionen

Ping und Daten Verwerten

Ein Thema von gasty · begonnen am 3. Aug 2008 · letzter Beitrag vom 5. Aug 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
gasty

Registriert seit: 14. Nov 2007
Ort: Nidderau
80 Beiträge
 
Delphi 7 Enterprise
 
#1

Ping und Daten Verwerten

  Alt 3. Aug 2008, 18:59
Also Hallo erstmal
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:
"ping adresse"
if ping = true then shape1.color := cl_Green;
else shape1.color := cl_Red;
Aber ich hab keine Ahnung wie ich das mit dem Ping umsetzen soll. Das mit dem Rot/Grün weiß ich


Freue mich über jede Art von Hilfe
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#2

Re: Ping und Daten Verwerten

  Alt 3. Aug 2008, 19:50
Ich hab schonmal was dazu gefunden ( ping und trace siehe Anhang )
Angehängte Dateien
Dateityp: pas trace_183.pas (6,4 KB, 44x aufgerufen)
Power is nothing without TControl
  Mit Zitat antworten Zitat
gasty

Registriert seit: 14. Nov 2007
Ort: Nidderau
80 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Ping und Daten Verwerten

  Alt 3. Aug 2008, 19:53
So und wie benutz ich das?
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
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#4

Re: Ping und Daten Verwerten

  Alt 3. Aug 2008, 20:01
Hi,

bisher habe ich nur trace gebraucht und das geht mit


Zitat:
procedure TraceCallback(hop, ip: dword; rtt: integer); stdcall;
var s :string;
begin
if rtt = -1 then s := '*' else s := inttostr(rtt);
if s = '*'
then form1.memo1.lines.add('#'+inttostr(hop) + ' * -- ' + inet_ntoa(in_addr(ip)))
else form1.memo1.lines.add('#'+inttostr(hop) + ': ' + s + 'ms -- ' + inet_ntoa(in_addr(ip)));
application.processmessages;
end;

tracert(dnsnametoip(param),TraceCallback,30);
Ping ist noch einfacher, da musst du nur die einzelnen Bytes der IP in ein DWORD packen.

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;
Power is nothing without TControl
  Mit Zitat antworten Zitat
gasty

Registriert seit: 14. Nov 2007
Ort: Nidderau
80 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Ping und Daten Verwerten

  Alt 3. Aug 2008, 20:16
Kann ich mit dem Programm auch DNS-Adressen anpingen?
Und wie benutz ich dann den Ping um das Shape entsprechend zu färben?
  Mit Zitat antworten Zitat
helgew

Registriert seit: 30. Jul 2008
125 Beiträge
 
#6

Re: Ping und Daten Verwerten

  Alt 3. Aug 2008, 20:54
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
  Mit Zitat antworten Zitat
gasty

Registriert seit: 14. Nov 2007
Ort: Nidderau
80 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Ping und Daten Verwerten

  Alt 4. Aug 2008, 14:12
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?
  Mit Zitat antworten Zitat
gasty

Registriert seit: 14. Nov 2007
Ort: Nidderau
80 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Ping und Daten Verwerten

  Alt 4. Aug 2008, 17:54
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:
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;
Aber es kommt immer dieser Error:
Zitat:
[Fehler] Unit1.pas(115): Undefinierter Bezeichner: 'ICMPPing'
Ok, habe diesen Fehler gelöst
hab einfach bei uses trace hingeschrieben, aber jetz bleibt immernoch die eine große frage:
Wie kann ich DNS-Adressen anpingen?

Danke schonmal an alle die bisher geholfen haben

//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?
  Mit Zitat antworten Zitat
xSkaschY

Registriert seit: 19. Jun 2006
Ort: Bünde
95 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Ping und Daten Verwerten

  Alt 4. Aug 2008, 20:09
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!
  Mit Zitat antworten Zitat
gasty

Registriert seit: 14. Nov 2007
Ort: Nidderau
80 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Ping und Daten Verwerten

  Alt 4. Aug 2008, 20:19
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz