| Autor |
Beitrag |
DeadlyAppearance
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Fr 27.01.06 05:55
Hi.
Und zwar habe ich ein Programm, welche es Tracert macht. Hab die Unit ausm Forum hier.
Wenn ich offline ping, bekomme ich ständig die 127.0.0.1 zurück, sprich keine exception.
Nun habe ich nen Ping vorher eingebaut um zu schauen, ob ich online bin.
Problem ist für mich, ich mache ca alle 3-5sec nen Ping, wenn das Programm mal 100+ User benutzern, da freut sich sicher google oder wer auch immer.
Jemand ne andere Idee? Weil in de Threads hier steht ja immer man kann es net prüfen, gibt keine Möglichkeit.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
Holgerwa
      
Beiträge: 325
WIN XP Pro, Vista Business
Delphi 7 Pro, BDS 2006 Pro
|
Verfasst: Fr 27.01.06 09:01
Hallo,
ohne jetzt von dem Thema sonderlich Ahnung zu haben würde ich sagen, daß Du schon eine Entscheidungshilfe gefunden hast, ob Online oder Offline:
Du sagst, daß Du im Falle von "Offline" 127.0.0.1 zurückbekommst. <- Damit weißt Du doch, welchen Zustand Du hast.
Holger
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Fr 27.01.06 09:55
Probier mal das, weiss nicht ob Ich das richtig verstanden hab.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| uses wininet; procedure TForm1.Button1Click(Sender: TObject); var flags: DWord; meld: string; const no = 'Es besteht im Moment keine Internetverbindung.'; begin if InternetGetConnectedState(@flags, 0) then begin meld := ''; if (flags and $40) = 0 then meld := no else begin meld := 'Es ist eine Internetverbindung eingerichtet.' + #13; if (flags and INTERNET_CONNECTION_LAN) > 0 then meld := meld + 'Die Internetverbindung erfolgt über ein Netzwerk'; if (flags and INTERNET_CONNECTION_MODEM) > 0 then meld := meld + 'Die Internetverbindung erfolgt über ein Modem'; if (flags and INTERNET_CONNECTION_PROXY) > 0 then meld := meld + ' mittels eines Proxy-Servers.' + #13 else meld := meld + '.' + #13; if (flags and $20) > 0 then meld := meld + no; if (flags and INTERNET_CONNECTION_MODEM_BUSY) > 0 then meld := meld + 'Das Modem nutzt z.Zt eine andere Verbindung.'; if (flags and $10) > 0 then meld := meld + 'Ein Remote Access Service (RAS) ist installiert.'; end; end else meld := no; showmessage(meld); end; |
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 27.01.06 10:35
Moin!
DeadlyAppearance hat folgendes geschrieben: | | Und zwar habe ich ein Programm, welche es Tracert macht. Hab die Unit ausm Forum hier. |
Zum Thema Ping: schau dir mal diese Unit hier an und lass das mit dem traceroute...
DeadlyAppearance hat folgendes geschrieben: | | Nun habe ich nen Ping vorher eingebaut um zu schauen, ob ich online bin. |
Dazu kann ich leider nur sagen: das geht nicht zweifelsfrei!  Wirklich... Hier ist nett erklärt, warum.
cu
Narses
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Fr 27.01.06 15:27
Ich benutze folgende Unit:
www.delphi-forum.de/...mp;highlight=tracert
Ich brauche die Tracefunktion. Die Pingfuktion benzte ich jediglich zur Überprüfung ob ich online bin oder nicht.
Leider ging das so mit der 127.0.0.1 nicht, da die eh jedesmal aufgelsitet wird, hab da noch mit ner zwischen Variablen gearbeitet gehabt, aber das ging auch net.
Muss nachher noch mals chauen, aber wenn ich einfach die Netzwerkkarte deaktiviere gab mir das trace glaube 2 IP`s zurück. Wenn ich ne tote IP trace, kamen glaube auch 2. Irgendwie sowas.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 27.01.06 16:00
Moin!
Ich weiss, welche Unit du benutzt.  Leider gibt es mit dem tracert gelegentlich unter bestimmten Win-Versionen einen bluescreen...  Deshalb sollte das nur unter sehr kontrollierten Umständen erfolgen.
DeadlyAppearance hat folgendes geschrieben: | | Die Pingfuktion benzte ich jediglich zur Überprüfung ob ich online bin oder nicht. |
Ich wiederhole mich gerne, aber begrenzt: es ist nicht möglich - auch nicht mit einem Ping - festzustellen, ob der Rechner "online" ist.  (Wobei es da, zugegeben, noch darauf ankommt, wie du "online" definierst. Wenn dein Ping eine RTT liefert, bist du DANN auf jeden Fall in der Lage, mit dem entsprechenden Host zu kommunizieren; selbst wenn genau dafür dann eingewählt werden muss...  )
DeadlyAppearance hat folgendes geschrieben: | Ich brauche die Tracefunktion.
[...]
Leider ging das so mit der 127.0.0.1 nicht, da die eh jedesmal aufgelsitet wird, hab da noch mit ner zwischen Variablen gearbeitet gehabt, aber das ging auch net.
Muss nachher noch mals chauen, aber wenn ich einfach die Netzwerkkarte deaktiviere gab mir das trace glaube 2 IP`s zurück. Wenn ich ne tote IP trace, kamen glaube auch 2. Irgendwie sowas. |
Wenn ich ehrlich bin, glaube ich nicht, dass du weißt, was du da tust...
Viel Erfolg noch
Narses
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Fr 27.01.06 18:17
Ich pinge derzeit nach und nach 5 Websitzen an, da immer mal eine nicht antwortet. Sollten alle 5 Websiten keinen Ping größer 0 zurückliefern, so starte ich nen Timer und versuche es eine Minute später erneut, da ich davon ausgehe, das man nun offline ist.
Erst wenn ein Ping erfolgreich zurückkommt, gehe ich davon aus, dass auch der Traceroute funktionieren wird und somit führe ich diesen anschließend aus.
Wie gesagt, ich hatte bis eben noch keine Zeit, 100% zu schauen was die Tracefunktion mir zurückliefert, wenn ich Offline bin. Vielleicht kann ichs auch ohne ping prüfen. Auf jedenfall darf das Programm nicht stillstehen wenn ich keien verbindung zum Internet habe sondern erneut versuchen eien Trace auszuführen.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 27.01.06 18:34
Moin!
DeadlyAppearance hat folgendes geschrieben: | | Ich pinge derzeit nach und nach 5 Websitzen an, da immer mal eine nicht antwortet. Sollten alle 5 Websiten keinen Ping größer 0 zurückliefern, so starte ich nen Timer und versuche es eine Minute später erneut, da ich davon ausgehe, das man nun offline ist. |
Dass du nicht zweifelsfrei ermitteln kannst, ob ein Rechner mit dem Internet verbunden ist, hast du jetzt aber schon verstanden, oder?  Und dass du mit einem Ping im Zweifel eine Verbindung (die Geld kosten könnte!) erzwingst, ist dir auch klar, ja?
DeadlyAppearance hat folgendes geschrieben: | | Erst wenn ein Ping erfolgreich zurückkommt, gehe ich davon aus, dass auch der Traceroute funktionieren wird und somit führe ich diesen anschließend aus. |
Also, ich gestehe, du machst mich wirklich langsam neugierig, wozu du zum Kuckuck wissen musst, über welche öffentlichen Router eine Verbindung abgewickelt wird...  Lüfte doch mal dein Geheimnis!
DeadlyAppearance hat folgendes geschrieben: | | Wie gesagt, ich hatte bis eben noch keine Zeit, 100% zu schauen was die Tracefunktion mir zurückliefert, wenn ich Offline bin. Vielleicht kann ichs auch ohne ping prüfen. Auf jedenfall darf das Programm nicht stillstehen wenn ich keien verbindung zum Internet habe sondern erneut versuchen eien Trace auszuführen. |
cu
Narses
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Fr 27.01.06 19:13
Ich hatte in meinem PHP-Insertscript noch nen Fehler. Lese gerade die Daten erneut ein und zeige nachher mal, was ich da anstelle. Ne Website bastel ich auch schon gerade.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Fr 27.01.06 20:13
So, bin wieder da, bin mit Rechner zum Freund gefahren..
Hier is tdas Ergebnis von 36h Tracerouts von meinem Freund und mir:
www.realityworld.de/...k-cores1600x1200.png
Das mache ich 
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 27.01.06 20:46
Moin!
Verzeih die blasphemische Frage, angesichts solch beeindruckender Ergebnisse...  aber wozu ist das gut?
cu
Narses
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Fr 27.01.06 20:54
Spass an der Freude. Bin auf die Idee gekommen und is doch ne nette Übung  .
Hab mir gerade mal die Unit angeschaut.
Wenn ich offline bin, habe ich als bei Hop = 1 die gleiche IP, wie die StartIP. Lässt sich also wunderbar abfangen:
if (Form1.edIP.Text = inet_ntoa(in_addr(ip))) and (hop = 1) then
Wenn ich z.B. ne IP-Adresse wie 1.1.1.1 antrace, so komme ich bis zum ersten Hop und anschließend wars das, aber es klappt, obwohl die IP-Adresse nicht vergeben ist.
Nun als Beispiel die Adresse 247.225.130.158. Gibt wohl auch nicht. Hier Ist auch wieder bei Hop = 1 die IP gleich und somit denke ich, ich sei off und mache ne Minute Pause. Und genau das möchte ich abfangen.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 27.01.06 21:02
Moin!
Leider muss ich nochmal nachfragen, da mein beschränkter Geist einfach nicht auf die Lösung kommt:
WAS "sieht" denn nun der Eingeweihte in dieser Grafik?
cu
Narses
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Fr 27.01.06 21:18
Jeder Punkt isn Hop, um so dicker der Punkt, um so mehr Nodes zu nem anderen Hop hat dieser.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 27.01.06 21:23
Moin!
Ich komm mir ja schon richtig blöd vor, aber: VON WELCHER IP ZU WELCHER ANDEREN bestimmst du die Anzahl der Router und WARUM?!?
cu
Narses
|
|
DeadlyAppearance 
      
Beiträge: 113
Win 7
Delphi 2010 Arch., C# VS 2008
|
Verfasst: Fr 27.01.06 22:25
Von wo nach wo is im Grunde egal.
In meinem fall, von deiner zu ner random IP.
Der Weg ist das Ziel  .
Und ich mache das aus Spass an der Freude um ne Karte mit allen Routern und verbindungen unseren schönen wwws zu erhalten.
_________________ Als du auf die Welt kamst, weintest du, und um dich herum freuten sich alle. Lebe so, daß, wenn du die Welt verläßt, alle weinen und du allein lächelst.
|
|
Born-to-Frag
      
Beiträge: 1094
Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
|
Verfasst: Fr 27.01.06 23:14
Was mich angeht, ich kann das Bild leider nicht öffnen 
_________________ Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
|
|
Narses
      

Beiträge: 10185
Erhaltene Danke: 1261
W11x64
TP3 .. D7pro .. D10.2CE
|
Verfasst: So 29.01.06 17:05
Moin!
Sowas hatte ich mir schon gedacht...
Leute wie du sind der Grund, wieso Provider irgendwann nützliche Diagnosefunktionen einstellen/verwehren werden, weil sie missbraucht werden...
Viel Erfolg dann noch,
Narses
|
|
|