Internet Zugang wirklich auf Ja und Nein festlegen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von dive26.

    Internet Zugang wirklich auf Ja und Nein festlegen

    Wie kann feststellen ob wirklich ein Internetzugang besteht.

    My.Computer.Network.IsAvailable

    Ist wirklich nicht hilfreich.

    Gruß
    Achim-666

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Achim-666“ ()

    Zum Beispiel in dem einen bzw. mehrere Server an - Pingst.

    Ich seh grad da gibt es keine VB Beispiele:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Shared Function IsOnline() As Boolean
    2. Using ping As Ping = New Ping()
    3. Dim replay As PingReply = ping.Send("www.google.de")
    4. If replay.Status <> IPStatus.Success Then
    5. Return False
    6. replay = ping.Send("www.bing.com")
    7. Return replay.Status = IPStatus.Success
    8. End Using
    9. End Function
    @Achim-666 Willkommen im Forum. :thumbup:
    Oder Du testest mit einem Explorer Deiner Wahl, ob Du Verbindung zu einer Internet-Seite aufbauen kannst, z.B. www.zdf.de.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das heißt ich versuche eine Datei von meinem FTP-Server herunter zuladen und schaue was passiert bzw. werte das dann aus?

    Fakiz ich probier das mal. Vielen Dank.

    Welche Import benötigt dein Quellcode?

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Achim-666“ ()

    Mal eine allgemeine Überlegung: Man hat doch keine Garantie, dass bestimmte Server in dem Augenblick, wo man sie anpingt, erreichbar sind. Oder dass diese überhaupt (noch) einen Ping erwidern (das kann der Serveradmin auch abschalten). Vielleicht ist die Seite auch im Netzwerk gesperrt. Soll heißen, das erscheint mir als keine sichere Methode, um die Internetverbindung zu prüfen.

    Man müsste im Prinzip etwas anpingen, was die eigene Internetverbindung sowieso braucht, z. B. einen DNS-Server. Allerdings befürchte ich, dass man im Regelfall seinen Router als DNS eingestellt hat und nur der den wahren Server kennt.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Ping ist keine Garantie ob ein Server/Client erreichbar/online ist. Wie von Marcus Gräfe bereits angesprochen kann auf einen Ping die Antwort verweigert werden. Es gibt auch Geräte, wo die Netzwerkkarte immer unter Strom steht (außer man zieht den Stromstecker), die unter Umständen eine Antwort auf einen Ping senden obwohl das Gerät nicht hochgefahren ist. Daher versuche ich, anstelle von Ping, einen Connect zu einem Port auf dem Client/Server herzustellen der definitiv nur dann funktioniert, wenn das Gerät auch online und hochgefahren ist.
    Mfg -Franky-

    VB.NET-Quellcode

    1. Imports System.Runtime.InteropServices
    2. 'Internet verbunden
    3. Private Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef connDescription As Integer, ByVal ReservedValue As Integer) As Boolean
    4. Public Function IsConnectionAvailable() As Boolean
    5. Dim Desc As Integer
    6. Return InternetGetConnectedState(Desc, 0)
    7. End Function

    VB.NET-Quellcode

    1. If IsConnectionAvailable then
    2. 'Internet ON
    3. else
    4. 'Internet OFF
    5. end if

    Das geht gut! Habe im Internet nichts besseres gefunden.
    (Ist nicht auf meine Sache gewachsen)

    CodeTags gesetzt/korrigiert; bitte zukünftig darauf achten, das richtige CodeHighlighting zu verwenden ~VaporiZed

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „VaporiZed“ ()

    In der Regel möchte man ja wissen ob Internetzugang besteht, weil man auf einen bestimmten Server zugreifen möchte.
    Somit kann man ja gleich den Server testweise pingen ;) .
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    Das stimmt. Oder man macht eben das, was man sowieso vorhat, z. B. einen Download oder was auch immer. Dann den Fehler abfangen. Der allerdings möglicherweise nicht sofort, sondern erst nach einem Timeout kommt.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Aber zumindest weiß man schon mal, dass wenn My.Computer.Network.IsAvailable FALSE zurückgibt, garantiert kein Internet vorhanden ist ;) . Darauf kann man dann schon mal reagieren. Und wenn da TRUE zurückkommt, dann ist zumindest eine Netzwerkverbindung vorhanden - Internetverbindung könnte man prüfen, indem man 8.8.8.8 prüft (Google DNS-Server). Der ist so gut wie immer erreichbar.

    Für das My.Computer.Network.IsAvailable gibts ja auch ein Event. Da kann man dann sofort reagieren, wenn während der Anwendung auf einmal das Netzwerk weg ist. Ich mach das so bei meinen Kassenanwendungen die bei mobilen Geräten oder im Clientbetrieb auf eine aktive Netzwerkverbindung angewiesen sind. Da kann man dann dem Kunden zumindest nachweisen, dass die Software nicht funktionierte, weil das kundeneigene Netzwerk weg war und nicht weil die Software daran schuld war ;-).
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at