Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IndyIcmp Turbo Delphi Explorer und der Serverping (https://www.delphipraxis.net/100764-indyicmp-turbo-delphi-explorer-und-der-serverping.html)

Ajin 3. Okt 2007 16:21


IndyIcmp Turbo Delphi Explorer und der Serverping
 
Hi Leute,

Das Thema pingen wurde ja schon 1000 fach behandelt. Ich möchte eine Mini-Anwendung schreiben welche alle 5 Minuten einen Linux Server anpingen soll. Bei nicht erreichen wird ein AlarmSound gespielt.

Zum Pingen nutze ich folgenden Code:

Delphi-Quellcode:
procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
  var erfolg:Boolean;
  stime:string;
begin

 if (AReplyStatus.MsRoundTripTime = 0) then
    sTime := '<1'
  else
    sTime := '=';

  Listbox1.Items.Add(Format('%d bytes from %s: icmp_seq=%d ttl=%d time%s%d ms',
                            [AReplyStatus.BytesReceived,
                             AReplyStatus.FromIpAddress,
                             AReplyStatus.SequenceId,
                             AReplyStatus.TimeToLive,
                             sTime,
                             AReplyStatus.MsRoundTripTime]));

                             //if AReplyStatus.ReplyStatusType = rsEcho then ShowMessage(AReplyStatus.FromIpAddress+' hat geantwortet');
{  erfolg := AReplyStatus.ReplyStatusType = rsEcho;
  if erfolg=true then
  showmessage('OK')
  else
  showmessage('DOWN');
  }
end;

//Aufruf
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;

begin
  IdIcmpClient1.Host := '88.198.25.xxx';
  for i := 1 to 4 do
 begin
    idicmpclient1.ping;
  Application.ProcessMessages;
 end;


end;
Ich habe schon einige Varianten und Möglichkeiten getestet welche ich der Suchfunktion entnommen habe.

Ich bin als Administrator unter Vista 32 Bit angemeldet, die exe wird auch mit Adminrechten ausgeführt. Pingen unter cmd geht, nur meine Anwendung liefert nix.

0 bytes from 0.0.0.0: icmp_seq 3491 ttl=0 time=10ms
0 bytes from 0.0.0.0: icmp_seq 3491 ttl=0 time=10ms
0 bytes from 0.0.0.0: icmp_seq 3491 ttl=0 time=10ms
0 bytes from 0.0.0.0: icmp_seq 3491 ttl=0 time=10ms

IdIcmpClient1
Host: 88.198.25.xxx
IPVersion: Id_IPv4
Name: IdIcmpClient1
PacketSize: 1024
Port 0
Protocol 1
ProtocolIpv6: 58
ReceiveTimeout: 10
Tag: 0

Was mache ich da wieder falsch?

RobertP 3. Okt 2007 16:56

Re: IndyIcmp Turbo Delphi Explorer und der Serverping
 
Du musst das ReceiveTimeout höher stellen. In 10ms antwortet kein Server außer im LAN.

Ajin 3. Okt 2007 17:30

Re: IndyIcmp Turbo Delphi Explorer und der Serverping
 
Hab den Timeout auf 7000 gesetzt, aber die IP bleibt auf 0.0.0.0 :gruebel:

Ajin 4. Okt 2007 08:32

0.0.0.0
 
Wieso steht die IP auf 0.0.0.0 obwohl ich den Host eindeutig angebe?

Klaus01 4. Okt 2007 08:52

Re: IndyIcmp Turbo Delphi Explorer und der Serverping
 
In Deinem Programm hast Du hier
Zitat:

IdIcmpClient1.Host := '88.198.25.xxx';
aber nicht xxx stehen, oder?

Grüße
Klaus

Ajin 4. Okt 2007 12:49

Re: IndyIcmp Turbo Delphi Explorer und der Serverping
 
Hehe nein die IP ist im Programm vollständig.

Ajin 5. Okt 2007 07:08

Re: IndyIcmp Turbo Delphi Explorer und der Serverping
 
Hab nochmal darüber gebrütet und erneut gesucht... ich finde aber keine Lösung.

:( Ist es so schwer einen Ping ins Internet zu schicken?

Klaus01 5. Okt 2007 15:24

Re: IndyIcmp Turbo Delphi Explorer und der Serverping
 
Hallo Jaimy,

habe diesen Code verwendet (unter xp) und der funktioniert einwandfrei.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i:Byte;
begin
  idIcmpClient1.ReceiveTimeout:=1000;
  idIcmpClient1.Host:='85.13.129.34';
   for i:=1 to 4 do
    idIcmpClient1.Ping;
end;
Grüße
Klaus

Bernhard Geyer 5. Okt 2007 15:26

Re: IndyIcmp Turbo Delphi Explorer und der Serverping
 
Schon mal Vista-Firewall abgeschaltet?

Ajin 5. Okt 2007 22:28

Re: IndyIcmp Turbo Delphi Explorer und der Serverping
 
ARGHL! :wall: Dieses drecks Vista bringt mich noch um den Verstand... Firewall aus schon gehts. *schäm*


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 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