Problem mit Ping
-
hallo
ich arbeite mit einer der Indy komponenten und zwar mit der icmp-komponenteich möchte eine funktion davon abhängig machen ob ein ping funzt oder nich
nur komischer weise bekomme ich das echo immer zurück auch wenn ich ip´s wie 999.65.566.1 anpinge oder soIdIcmpClient1->Ping(ip,1000);so hab ich erstmal das erstmal aufgerufen
und lasse es dann ausgeben
RichEdit1->Lines->Add(IntToStr(AReplyStatus.BytesReceived));komischer weise bekomme ich immer 72 bytes zurück außer meine firewall is an dann sinds null..
frag ich mich wie ein echo zurückkommt wenn es nich mal ankommt?! kann mir vielleicht jemand helfen
danke!
-
Kann ich nicht nachvollziehen (Indy 9.0.14).
Bei unmöglichen IP-Adressen gibt's einen SocketError, und bei nicht erreichbaren Hosts ist der ReplyStatus leer, abgesehen von der Zeit.
-
so ich hab jetz schonmal einen kleinen fehler entdeckt
wenn ich den ping ausführe gibt es ja den status
....FromIpAddress also von wem die bytes empfangen wurden
und komischerweise ist diese adresse immer der localhost als mein eigener rechner vollkommen egal was ich eingebe
ob 1.1.1.1 oder 999.999.999.999 die adresse von der angeblich die bytes empfangen wurden ist immer mein rechner also die 192.168.0.2 wie is das möglich???
wie sollte ich mich immer selber anpingen?? wenn ich zb versuche meinen router anzupingen was ja möglich sein sollte ist auch da wieder mein rechner von dem die bytes angeblich kommenkann mir da jemand helfen es wäre echt super wichtig für mich weil einiges davon abhängt

dankeschönhier vielleicht noch relevanter code
//dem string "ip" wird die geprüfte ip aus dem textfeld zugewiesen ip=edit_ip->Text;TForm1::connect() { //der ping wird mit timetolive(ttl) =1 sec ausgeführt (timeout nach 1 sec) IdIcmpClient1->Ping(ip,1000); return 0; }void __fastcall TForm1::IdIcmpClient1Reply(TComponent *ASender, const TReplyStatus &AReplyStatus) RichEdit1->Lines->Add("Antwort von " + AReplyStatus.FromIpAddress); //<-- ist immer localhost bei mir RichEdit1->Lines->Add(IntToStr(AReplyStatus.BytesReceived)); //wird 72 angezeigt also die empfangenen bytes
-
sushi schrieb:
//dem string "ip" wird die geprüfte ip aus dem textfeld zugewiesen
ip=edit_ip->Text;Die Zieladresse gehört in die Host-Property der ICMP-Komponente.
-
ja geil das funzt
und ich hab gedacht es würde reichen wenn ich der funktion "ping" die ip zuweise
dankeschön du hast mich um einiges weiter gebracht