none
Saber si hay conexión a Internet (Visual Basic 2010)

    Question

  • Hola, tengo una aplicación que tiene que realizar una conexión a un servidor, y hasta ahí todo bien, el problema viene cuando el equipo no tiene conexión a Internet, da un error la aplicación y se cierra, necesito que la aplicación compruebe si hay conexión a Internet antes de realizar la conexión, he probado esto:

    If My.Computer.Network.IsAvailable() Then
        If My.Computer.Network.Ping("www.google.es", 1000) Then
            MsgBox("Conectado.")
        Else
            MsgBox("Error de conexión.")
        End If
    Else
        MsgBox("No conectado")
    End If
    

    pero la función "My.Computer.Network.IsAvailable()" detecta que el equipo está conectado a una red (está a un router inalámbrico, pero ese router está sin acceso a Internet), al detectar que está conectado pasa a la parte el la que realiza un Ping a la página de Google (en este caso), y ahí es donde da el error al no tener acceso real a Internet: 

    System.Net.NetworkInformation.PingException: Excepción durante una solicitud Ping.

     Necesito comprobar el acceso a Internet (mediante una URL para luego cambiarla por la de mi servidor) sin que salga ese error, y como digo ese error solamente sale si el equipo está conectado a un router y ese router sin Internet, si el router tiene Internet, no sale el error, si se os ocurre alguna manera, os lo agradezco, porque he probado muchas cosas, y ninguna funciona...

    Gracias y saludos.

    Wednesday, January 18, 2012 12:38 PM

Answers

  • hola

    y si controlas el error ?

    If My.Computer.Network.IsAvailable() Then
      Try  

    If
    My.Computer.Network.Ping("www.google.es", 1000) Then MsgBox("Conectado.") Else MsgBox("Error de conexión.") End If

    Catch ex As PingException
    MsgBox("Error de conexión.") End Try

     Else MsgBox("No conectado") End If

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by David-RR91 Wednesday, January 18, 2012 1:29 PM
    Wednesday, January 18, 2012 12:41 PM

All replies

  • hola

    y si controlas el error ?

    If My.Computer.Network.IsAvailable() Then
      Try  

    If
    My.Computer.Network.Ping("www.google.es", 1000) Then MsgBox("Conectado.") Else MsgBox("Error de conexión.") End If

    Catch ex As PingException
    MsgBox("Error de conexión.") End Try

     Else MsgBox("No conectado") End If

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marked as answer by David-RR91 Wednesday, January 18, 2012 1:29 PM
    Wednesday, January 18, 2012 12:41 PM
  • Funciona perfectamente, muchas gracias, no se me había ocurrido controlar el error, muchas gracias.

    Saludos.

    Wednesday, January 18, 2012 1:29 PM