Saber si existe conexión a Internet

Iniciado por YAcosta, 18 Noviembre 2018, 08:34 AM

0 Miembros y 1 Visitante están viendo este tema.

YAcosta

Buenas, tenga esta inquietud.

Para poder detectar si tengo o no internet uso la libreria Sensapi.dll
Código (vb) [Seleccionar]

Option Explicit
 
'Constantes para determinar que tipo de Red estamos conectados
Const NETWORK_ALIVE_AOL = &H4
Const NETWORK_ALIVE_LAN = &H1
Const NETWORK_ALIVE_WAN = &H2
 
Private Declare Function IsNetworkAlive Lib "SENSAPI.DLL" (ByRef lpdwFlags As Long) As Long
 
Private Sub Timer1_Timer()
Dim Ret As Long
 
'Si la Api retorna 0 quiere decir que no hay ningun tipo de conexion de Red
If IsNetworkAlive(Ret) = 0 Then
   Label1 = "No hay"
Else
   Label1 = "Si hay"
End If
End Sub


Esto lo ejecuto desde una maquina virtual con conexión a internet, el timer esta con intervalo 2000 y realizo las siguientes pruebas las cuales describo paso a paso:

Ejecuto el programa y no lo detengo

Obtengo el mensaje "Si hay":  CORRECTO
Dentro de Windows deshabilito la red y el programa indica "No hay": CORRECTO
Lo vuelvo a habilitar y obtengo un "Si hay": CORRECTO
A la maquina virtual le quito la red y obtengo "No hay":  CORRECTO
Lo vuelvo a activar y obtengo "Si hay":  CORRECTO
En ese momento me voy al router y lo apago y el programa cambia a "No hay".  CORRECTO
Hasta aqui Bingo pero...

Con el router apagado voy al programa y lo detengo, lo vuelvo a ejecutar y obtengo un "Si hay" pero el router está apagado!!!

¿porque sucede esto estimados?

Quedo a la espera de sus comentarios, muchas gracias


YAcosta

ya chequee que esta libreria no necesariamente me va a decir si hay o no internet, me dira el tipo de conexion si pero eso no necesito.

Un amigo me recomendo hacer ping a una pagina, voy a ir por ese camino.

Gracias, salvo mejor idea estare atento.

Saludos