![]() |
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:
Ich habe schon einige Varianten und Möglichkeiten getestet welche ich der Suchfunktion entnommen habe.
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 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? |
Re: IndyIcmp Turbo Delphi Explorer und der Serverping
Du musst das ReceiveTimeout höher stellen. In 10ms antwortet kein Server außer im LAN.
|
Re: IndyIcmp Turbo Delphi Explorer und der Serverping
Hab den Timeout auf 7000 gesetzt, aber die IP bleibt auf 0.0.0.0 :gruebel:
|
0.0.0.0
Wieso steht die IP auf 0.0.0.0 obwohl ich den Host eindeutig angebe?
|
Re: IndyIcmp Turbo Delphi Explorer und der Serverping
In Deinem Programm hast Du hier
Zitat:
Grüße Klaus |
Re: IndyIcmp Turbo Delphi Explorer und der Serverping
Hehe nein die IP ist im Programm vollständig.
|
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? |
Re: IndyIcmp Turbo Delphi Explorer und der Serverping
Hallo Jaimy,
habe diesen Code verwendet (unter xp) und der funktioniert einwandfrei.
Delphi-Quellcode:
Grüße
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; Klaus |
Re: IndyIcmp Turbo Delphi Explorer und der Serverping
Schon mal Vista-Firewall abgeschaltet?
|
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 19:42 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