Comprobar la conexión a Internet en C#
-
Utilice
GetIsNetworkAvailable()
para comprobar la conexión a Internet enC#
-
Utilice
InternetGetConnectedState(wininet)
para comprobar la conexión a Internet enC#
-
Haga ping a una dirección IP para comprobar la conexión a Internet en
C#
Este artículo explica cómo comprobar si la conexión a Internet está disponible o no en el lenguaje de programación C#.
En algunos casos de uso, necesitaremos usar el código C# en las aplicaciones de Windows para determinar si se puede acceder o no a una conexión a Internet. Puede ser para descargar o cargar un archivo a través de Internet en Windows Forms; alternativamente, podría ser adquirir algunos datos de una base de datos ubicada en un área distante.
De cualquier manera, se requiere una verificación de Internet en estas circunstancias.
Existen algunos enfoques diferentes para comprobar la accesibilidad de Internet mediante C#. Veremos todas estas diferentes técnicas con su implementación.
Utilice GetIsNetworkAvailable()
para comprobar la conexión a Internet en C#
El método GetIsNetworkAvailable()
se utilizará en el siguiente ejemplo para determinar si una conexión a una red es accesible o no.
Código fuente:
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.");
}
}
}
El programa mostrará el caso true
si la conexión a Internet está disponible.
The internet connection is available.
Si la computadora no puede establecer una conexión a Internet, el código producirá un caso false
.
The internet connection is not available. Please connect to the internet and try again.
Utilice InternetGetConnectedState(wininet)
para comprobar la conexión a Internet en C#
La interfaz de programación de aplicaciones (API) wininet
puede determinar si la máquina local tiene una conexión a Internet operativa.
El espacio de nombres System.Runtime.InteropServices
se utiliza para esto, y la herramienta DllImport
se usa para importar el archivo wininet.dll
.
Después de esto, construye una variable booleana con extern static
y una función llamada InternetGetConnectedState
. Esta función debe tener dos parámetros: descripción
y valor reservado
.
A continuación, debe escribir un método que devuelva un valor booleano y use el nombre IsInternetAvailable
. Este método utilizará la función que se acaba de analizar, que devuelve el estado de Internet del sistema local.
Código fuente:
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.");
};
}
}
El programa mostrará el caso true
si la conexión a Internet está disponible.
The internet connection is available.
Si la computadora no puede establecer una conexión a Internet, el código producirá un caso false
.
The internet connection is not available. Please connect to the internet and try again.
Haga ping a una dirección IP para comprobar la conexión a Internet en C#
Ping
es una clase que las aplicaciones pueden usar para determinar si una máquina remota es accesible o no. Su capacidad para llegar efectivamente a un host distante depende en cierta medida de la topología de la red.
El nombre de host o la dirección y un valor de tiempo de espera se envían al método Send()
de la clase Ping
. Enviar un mensaje dará como resultado que se devuelva un objeto PingReply
si el mensaje se recibe correctamente.
Si se envía una solicitud de eco ICMP y se recibe una respuesta satisfactoria, el valor de Estado
se establecerá en Éxito
.
Código fuente:
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.");
}
}
}
El programa mostrará el caso true
si la conexión a Internet está disponible.
The internet connection is available.
Si la computadora no puede establecer una conexión a Internet, el código producirá un caso false
.
The internet connection is not available. Please connect to the internet and try again.
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