¿Cuál es la mejor manera de determinar si hay una conexión de red disponible?
c#
networking
Puntilla
fuente
fuente
Respuestas:
Puede verificar una conexión de red en .NET 2.0 usando
GetIsNetworkAvailable()
:Para monitorear cambios en la dirección IP o cambios en la disponibilidad de la red, use los eventos de la clase NetworkChange :
fuente
NetworkInterface.GetIsNetworkAvailable()
ha sido muy poco confiable en mi aplicación (.NET 4.5, Windows 10), especialmente cuando se ejecuta en una máquina virtual. Manejar los eventos deNetworkAvailabilityChanged
ha sido confiable.La respuesta marcada es 100% buena, sin embargo, hay ciertos casos en los que el método estándar es engañado por tarjetas virtuales (caja virtual, ...). También suele ser deseable descartar algunas interfaces de red en función de su velocidad (puertos serie, módems, ...).
Aquí hay un fragmento de código que busca estos casos:
fuente
Microsoft Windows Vista y 7 utilizan la técnica NCSI (Indicador de estado de conectividad de red):
fuente
Llame a este método para verificar la conexión de red.
Pon esto debajo de la línea de código.
fuente