Überprüfen Sie die Internetverbindung in C#

Saad Aslam 12 Oktober 2023
  1. Verwenden Sie GetIsNetworkAvailable(), um die Internetverbindung in C# zu überprüfen
  2. Verwenden Sie InternetGetConnectedState(wininet), um die Internetverbindung in C# zu überprüfen
  3. Pingen Sie eine IP-Adresse, um die Internetverbindung in C# zu überprüfen
Überprüfen Sie die Internetverbindung in C#

In diesem Artikel wird erläutert, wie Sie in der Programmiersprache C# überprüfen, ob die Internetverbindung verfügbar ist oder nicht.

In einigen Anwendungsfällen müssen wir C#-Code in Windows-Apps verwenden, um festzustellen, ob auf eine Internetverbindung zugegriffen werden kann oder nicht. Es kann sein, eine Datei über das Internet in Windows Forms herunterzuladen oder hochzuladen; alternativ könnte es sein, einige Daten aus einer Datenbank in einem entfernten Gebiet zu erfassen.

In jedem Fall ist unter diesen Umständen eine Internetprüfung erforderlich.

Es gibt verschiedene Ansätze, um die Zugänglichkeit des Internets mit C# zu überprüfen. Wir werden all diese verschiedenen Techniken mit ihrer Implementierung betrachten.

Verwenden Sie GetIsNetworkAvailable(), um die Internetverbindung in C# zu überprüfen

Die Methode GetIsNetworkAvailable() wird im folgenden Beispiel verwendet, um festzustellen, ob eine Verbindung zu einem Netzwerk erreichbar ist oder nicht.

Quellcode:

using System.Net.NetworkInformation;

public class CheckInternetConnecition {
  static void Main(string[] args) {
    if (NetworkInterface.GetIsNetworkAvailable()) {
      Console.WriteLine("The internet connection is available.");
    } else {
      Console.WriteLine(
          "The internet connection is not available. Please connect to the internet and try again.");
    }
  }
}

Das Programm gibt den true-Fall aus, wenn die Internetverbindung verfügbar ist.

The internet connection is available.

Wenn der Computer keine Verbindung zum Internet herstellen kann, erzeugt der Code einen falschen Fall.

The internet connection is not available. Please connect to the internet and try again.

Verwenden Sie InternetGetConnectedState(wininet), um die Internetverbindung in C# zu überprüfen

Die wininet-Anwendungsprogrammierschnittstelle (API) kann feststellen, ob die lokale Maschine über eine funktionsfähige Internetverbindung verfügt.

Dazu wird der Namespace System.Runtime.InteropServices verwendet und mit dem Tool DllImport die Datei wininet.dll importiert.

Erstellen Sie danach eine boolesche Variable mit extern static und einer Funktion namens InternetGetConnectedState. Diese Funktion sollte zwei Parameter haben: description und reservedValue.

Als nächstes müssen Sie eine Methode schreiben, die einen booleschen Wert zurückgibt und den Namen IsInternetAvailable verwendet. Diese Methode verwendet die gerade besprochene Funktion, die den Internetstatus des lokalen Systems zurückgibt.

Quellcode:

using System.Runtime.InteropServices;

public class PingIP {
  [DllImport("wininet.dll")]
  private extern static bool InternetGetConnectedState(out int desc, int resValue);
  public static bool IsInternetAvailable() {
    int desc;
    return InternetGetConnectedState(out desc, 0);
  }
  static void Main(string[] args) {
    if (IsInternetAvailable()) {
      Console.WriteLine("The internet connection is available.");
    } else {
      Console.WriteLine(
          "The internet connection is not available. Please connect to the internet and try again.");
    };
  }
}

Das Programm gibt den true-Fall aus, wenn die Internetverbindung verfügbar ist.

The internet connection is available.

Wenn der Computer keine Verbindung zum Internet herstellen kann, erzeugt der Code einen falschen Fall.

The internet connection is not available. Please connect to the internet and try again.

Pingen Sie eine IP-Adresse, um die Internetverbindung in C# zu überprüfen

Ping ist eine Klasse, die Anwendungen verwenden können, um festzustellen, ob auf eine entfernte Maschine zugegriffen werden kann oder nicht. Seine Fähigkeit, einen entfernten Host effektiv zu erreichen, hängt etwas von der Topologie des Netzwerks ab.

Der Hostname oder die Adresse und ein Timeout-Wert werden an die Methode Send() der Klasse Ping gesendet. Das Senden einer Nachricht führt dazu, dass ein PingReply-Objekt zurückgegeben wird, wenn die Nachricht erfolgreich empfangen wurde.

Wenn ein ICMP-Echo-Request gesendet und eine zufriedenstellende Antwort empfangen wird, wird der Status-Wert auf Success gesetzt.

Quellcode:

using System.Net.NetworkInformation;

public class PingIP {
  static void Main(string[] args) {
    Ping myPing = new Ping();
    PingReply reply = myPing.Send("192.168.10.16", 1000);
    if (reply.Status == IPStatus.Success) {
      Console.WriteLine("The internet connection is available.");
    } else {
      Console.WriteLine(
          "The internet connection is not available. Please connect to the internet and try again.");
    }
  }
}

Das Programm gibt den true-Fall aus, wenn die Internetverbindung verfügbar ist.

The internet connection is available.

Wenn der Computer keine Verbindung zum Internet herstellen kann, erzeugt der Code einen falschen Fall.

The internet connection is not available. Please connect to the internet and try again.
Autor: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn