Saltar al contenido

Comprobar si hay una conexión a Internet activa

Esta inquietud se puede abordar de variadas formas, pero nosotros te compartimos la que en nuestra opinión es la resolución más completa.

Solución:

Obviamente, su problema tiene muchos niveles. Debe comenzar definiendo “conectado a Internet” y continuar con el desarrollo de estrategias alternativas que incluyan no escribir archivos no válidos en caso de falla.

En cuanto a la pregunta “¿Estoy conectado?”, puede intentar acceder a la API de Win32:

Private Declare Function InternetGetConnectedState Lib "wininet.dll" _
(ByRef dwflags As Long, ByVal dwReserved As Long ) As Long

Public Function GetInternetConnectedState() As Boolean
  GetInternetConnectedState = InternetGetConnectedState(0&,0&)
End Function

Aunque dependiendo de la configuración de su red (proxy/NAT/restricciones de firewall, etc.), Windows podría tener una opinión diferente a la suya.

Intentar OBTENER las páginas que le interesan, verificar el estado de devolución en los encabezados HTTP (tiempo de espera de la puerta de enlace, 404, lo que sea que espere que suceda cuando “no funcione”) también podría ser una forma de hacerlo.

Podría usar la biblioteca MSXML y usar la clase XMLHttpRequest para verificar cosas

p.ej

On Error Resume Next
Dim request As MSXML2.XMLHTTP60
request.Open "http://www.google.com"
request.Send
Msgbox request.Status

El estado le dará el código de estado HTTP de lo que sucedió con la solicitud. Es posible que deba hacer algunas comprobaciones más, dependiendo de su escenario.

Espero que ayude.

Use el siguiente código para verificar la conexión a Internet primero y anable XML v6.0 en sus referencias

Function checkInternetConnection() As Integer
'code to check for internet connection
'by Daniel Isoje
On Error Resume Next
 checkInternetConnection = False
 Dim objSvrHTTP As ServerXMLHTTP
 Dim varProjectID, varCatID, strT As String
 Set objSvrHTTP = New ServerXMLHTTP
 objSvrHTTP.Open "GET", "http://www.google.com"
 objSvrHTTP.setRequestHeader "Accept", "application/xml"
 objSvrHTTP.setRequestHeader "Content-Type", "application/xml"
 objSvrHTTP.Send strT
 If err = 0 Then
 checkInternetConnection = True
 Else
  MsgBox "Internet connection not estableshed: " & err.Description & "", 64, "Additt !"
 End If
End Function

Nos encantaría que puedieras recomendar esta división si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *