Benutzer mit den meisten Antworten
Auf Internetverbindung prüfen

Frage
-
Hi zusammen, ich prüfe mit folgender Funktion ob es eine funktionierende Internetverbindung gibt.
Ist die Funktion okay, oder könnt ihr noch was anderes (evtl. funktional besseres) empfehlen?
Gruss
Public Function TestInternet() As Boolean Dim req As System.Net.HttpWebRequest Dim res As System.Net.HttpWebResponse TestInternet = False Try req = CType(System.Net.HttpWebRequest.Create("http://www.google.com"), System.Net.HttpWebRequest) res = CType(req.GetResponse(), System.Net.HttpWebResponse) req.Abort() If res.StatusCode = System.Net.HttpStatusCode.OK Then TestInternet = True End If Catch weberrt As System.Net.WebException TestInternet = False Catch except As Exception TestInternet = False End Try End Function
- Bearbeitet Tom Lambert (Koopakiller)Moderator Dienstag, 14. Mai 2013 18:15 Code als Code formatiert
Antworten
-
Hallo Peter,
dein Vorschlag sagt nichts darüber aus, ob eine Verbindung ins Internet möglich ist, sondern nur ob eine Netzwerkverbindung verfügbar ist. Die vorhandene Netzwerkverbindung könnte dabei in einem lokalem Netz liegen.
Bei der Prüfung auf eine Internetverbindung muss gegebenenfalls auch auf die Verwendung eines Proxies geprüft werden und dieser dann für die Verbindung berücksichtigt werden. Die WebException enthält dazu Informationen.
Gruß
- Florian
- Als Antwort markiert Thomas Klinger2 Mittwoch, 15. Mai 2013 17:18
Alle Antworten
-
Hallo,
grundsätzlich gibt es viele Möglichkeiten das Internet zu prüfen. In deinem Code könntest du dir die Variable TestInternet sparen und statt der Zuweisung sofort einen Wert zurück geben. Außerdem solltest du das HttpWebResponse entweder in einem Using-Block erstellen oder am Ende Close() aufrufen.
Ich persönlich würde es über einen einfachen Ping machen.
Public Function TestInternet() As Boolean Return New Ping().Send("www.google.com").Status = IPStatus.Success End Function
Welcher Code nun besser ist ist sicherlich ansichtssache. Meiner ist nur Kürzer.
Weitere Möglichkeiten findest du nachfolgend:
http://stackoverflow.com/questions/2031824/what-is-the-best-way-to-check-for-internet-connectivity-using-net<Code:13/> - Koopakiller [kuːpakɪllɐ]
Webseite | Code Beispiele | Facebook | Snippets
Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
Einen Konverter zwischen C# und VB.NET Code gibt es hier. -
Hi Thomas,
am besten finde ich:Imports System.Net.NetworkInformation Module Module1 Sub Main() If NetworkInterface.GetIsNetworkAvailable Then Console.WriteLine("Internet verfügbar") Else Console.WriteLine("Internet nicht verfügbar") End If Console.ReadKey() End Sub End Module
--
Viele Gruesse
Peter- Als Antwort vorgeschlagen Dennis Becker Mittwoch, 15. Mai 2013 09:10
-
Hi.
Ich finde Peters Lösung cool (und kurz genug, wenn man den Console-Kram weglässt), weil sie tatsächlich lokal prüft, ob eine Verbindung möglich ist, und nicht auf die eine oder andere Weise, ob der Google-Server reagiert. Der kann schließlich auch mal down sein. Wenn auch selten ...
LG, Dennis.
-
Hallo Peter,
dein Vorschlag sagt nichts darüber aus, ob eine Verbindung ins Internet möglich ist, sondern nur ob eine Netzwerkverbindung verfügbar ist. Die vorhandene Netzwerkverbindung könnte dabei in einem lokalem Netz liegen.
Bei der Prüfung auf eine Internetverbindung muss gegebenenfalls auch auf die Verwendung eines Proxies geprüft werden und dieser dann für die Verbindung berücksichtigt werden. Die WebException enthält dazu Informationen.
Gruß
- Florian
- Als Antwort markiert Thomas Klinger2 Mittwoch, 15. Mai 2013 17:18