Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Beste Überprüfung, ob eine Internetverbindung besteht? (https://www.delphipraxis.net/151131-beste-ueberpruefung-ob-eine-internetverbindung-besteht.html)

blackfin 6. Mai 2010 22:17


Beste Überprüfung, ob eine Internetverbindung besteht?
 
Hallo Experten,

eine kurze Frage, die ich schon länger mal hier stellen wollte:
Was ist eurer Meinung nach in Delphi die beste Lösung (am Besten mit Boardmitteln und ohne Indy), um zu überprüfen, ob der Computer, auf dem das eigene Programm läuft,
eine aktive Internet-Verbindung hat? Ohne einen Connect- oder Ping-Versuch auf einen bestimmten Server, falls es ohne überhaupt geht.

Edit:
Die API-Funktion "InetIsOffline" z.B. ist ja derbe unzuverlässig...darum frage ich, ob ihr vielleicht Lösungen habt, die mit ziemlicher Sicherheit sagen können, dass eine Internet-Verbindung besteht (und nicht nur z.B. eine LAN-Verbindung ohne externen Zugriff)

fatalerror 6. Mai 2010 22:42

Re: Beste Überprüfung, ob eine Internetverbindung besteht?
 
immer wieder schön, die perfekte Antwort von Marian Aldenhövel

blackfin 6. Mai 2010 22:49

Re: Beste Überprüfung, ob eine Internetverbindung besteht?
 
*lach* Nagut, etwas übertrieben, aber gut, ich habs verstanden :cheers:

Namenloser 6. Mai 2010 23:15

Re: Beste Überprüfung, ob eine Internetverbindung besteht?
 
Zitat:

Zitat von fatalerror
immer wieder schön, die perfekte Antwort von Marian Aldenhövel

Ich find das cool... alle paar Monate wird diese Seite in irgendeinem Thread mal wieder verlinkt. Und das, obwohl sie schon recht angestaubt aussieht... Web 1.0 halt :mrgreen: (weiß einer, wie alt die genau ist?) Ich glaube irgendwie, diese Seite wird niemals sterben. Würde gerne mal wissen, wie viel Traffic der Typ hat :lol:

mkinzler 7. Mai 2010 08:08

Re: Beste Überprüfung, ob eine Internetverbindung besteht?
 
Die Aussagen stimmen aber trotz des Alters der Seite

blackfin 7. Mai 2010 08:50

Re: Beste Überprüfung, ob eine Internetverbindung besteht?
 
Leider bin ich genauso nervig wie der besagte Lehrling...deswegen hierzu noch eine Zusatz-Frage:

Wie macht das dann z.B. Windows Vista / Win7?
Dort habe ich ja im TNA ein Netzwerk-Icon, das mir den Status angibt.
Verbinde ich mich mit meinem Router und das DSL-Modem ist aus, wird ein kleines Warndreieck angezeigt "Verbunden - nur lokal"
Wenn das Modem jedoch an ist, erscheint dort die kleine Weltkugel und es wird "Verbunden - Internet" angezeigt.

Es geht mir jetzt nicht darum, philosophisch darüber zu diskutieren, dass dies ja auch falsch sein könnte, da es nicht "Das Internet" ist, mit dem man dann verbunden ist, sondern ein anderes Netz.

Für meine Bedürfnisse bzw. Kunden würde folgende Überprüfung vollkommen ausreichen "Wenn Windows das Weltkugel-Symbol zeigt, dann ist auch Internet vorhanden".
Jetzt frage ich mich, wie eben Windows das macht? Oder ist das ganze nur eine überkanditelte Anzeige für das Ergebnis eines Pings auf microsoft.com? :)

himitsu 7. Mai 2010 08:57

Re: Beste Überprüfung, ob eine Internetverbindung besteht?
 
Zitat:

Zitat von mkinzler
Die Aussagen stimmen aber trotz des Alters der Seite

DSL, WLAN und GPRS/UMTS und noch einiges Anderes wurden inzwischen noch erfunden, aber Grundlegend hast'e schon Recht.

Inzwischen wurden auch noch Firewalls erfunden, welche da blockieren können.
Also selbst wenn eine Verbindung mit dem Internet besteht, heßt das noch lange nicht, daß dein Programm da auch hin arf.

PS: Angeblich soll es die Webseite selber schon über 10,2 Jahre geben.
www.seitwert.de?url=marian-aldenhoevel.de



Der einzig sichere Weg um zu prüfen ob, ob man mit dem gewünschten "Teil" des Internets verbunden ist, ist etwas aus diesem Teil abzufragen, also eine Verbindung zu versuchen.


Was genau wollt ihr denn nur prüfen und wie oft?

Heutzutage, zu Zeiten von Flatrates, ist es am Einfachsten einfach mal den Header einer Datei abzufragen oder einen PING zu senden.
Will man vom den Download einer Datei prüfen, ob das ginge, dann laß es einfach
und versuch direkt die Datei zu laden, wenn das nicht geht, dann hinter dich irgendwas daran (keine Internetverbindung, Server down, Datei existiert, die Firewall läßt sich nicht oder sonstewas).

blackfin 7. Mai 2010 09:15

Re: Beste Überprüfung, ob eine Internetverbindung besteht?
 
Zitat:

Also selbst wenn eine Verbindung mit dem Internet besteht, heßt das noch lange nicht, daß dein Programm da auch hin darf.
Das ist richtig, allerdings könnte man sich dann im Umkehrschluss auch sparen, überhaupt zu versuchen, eine Verbindung aufzubauen, wenn eh kein Internet da ist.
Und darum geht es mir eigentlich :)

Zitat:

Was genau wollt ihr denn nur prüfen und wie oft?
Das Programm soll beim Start einfach prüfen, ob der Rechner überhaupt am Internet hängt und dann ggf. einen Dialog bringen, ob man auf ein Online-Update überprüfen will.
So ein Verhalten habe ich schon öfter gesehen (TortoiseSVN macht das z.B.) und der Dialog wird nicht angezeigt, wenn das Internet gerade offline ist, aber LAN-Zugriff zur Verfügung steht, auf dem der SVN-Server liegt.

Bisher habe ich so eine Überprüfung immer über einen "stillen" Connect-Versuch gemacht und wollte wissen, ob es eben bessere methoden gibt :)

Phoenix 7. Mai 2010 09:31

Re: Beste Überprüfung, ob eine Internetverbindung besteht?
 
Die Programme die sowas machen sind ziemlich gemein:

Sie versuchen einfach, die Info zu laden. Kommt was zurück ist gut - kommt nix zurück ist halt keine Verbindung da.

Die Kostenprobleme die man damals hatte mit ISDN Leitungsaufbau etc. sind heutzutage *eigentlich* nicht mehr existent.

Vorschlag: Beim ersten Start ein Fenster anzeigen: "Soll automatisch beim Start nach Updates geprüft werden? Wenn Sie 'Nein' wählen sollten Sie die Prüfung ab und zu manuell über das Menü 'Wrdlbrmpft -> Nach Updates suchen' anstossen. <Ja> / <Nein>" und gut ist. ;-)


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