none
Validar URL Activos VB.NET RRS feed

  • Pregunta

  • hola amigos... disculpa por la molestia, necesito una ayudadita... Tengo 2 listbox, en una tengo barios url , quiero que pasen a un segundo listbox, pero que pasen solo las que estén activas las que se pueda acceder con internet. 

    jueves, 25 de junio de 2020 22:10

Respuestas

  • Hola  Mamite,

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te recomiendo probar estas dos opciones de código. La primera opción se inclina hacia extraer la información del encabezado de la respuesta web. Esta función se asegura de que la respuesta no provenga de otra dirección o que haya sido redirigida automáticamente.

    Public Function EsUrlActiva(ByVal HostAddress As String) As Boolean
        EsUrlActiva = False
    
        Dim url As New System.Uri(HostAddress)
        Dim wRequest As System.Net.WebRequest
        wRequest = System.Net.WebRequest.Create(url)
        Dim wResponse As System.Net.WebResponse
        Try
            wResponse = wRequest.GetResponse()
            'La dirección de respuesta es la misma que la HostAddress para evitar falsos positivos de una redirección automática.
            If wResponse.ResponseUri.AbsoluteUri().ToString = HostAddress Then 'incluir query strings
                EsUrlActiva = True
            End If
            wResponse.Close()
            wRequest = Nothing
        Catch ex As Exception
            wRequest = Nothing
            MsgBox(ex.ToString)
        End Try
    
        Return EsUrlActiva
    End Function

    La segunda opción determina el tiempo de espera y qué tan buena o mala es la conexión al servidor.

    Private Function EsElServerAccesible(ByVal HostAddress As Uri) As Boolean
        Try
            '1. Verifica si la computadora tiene acceso a la red.
            '2. Comprueba si el host es accesible y qué tan buena es la velocidad de respuesta.
            '3. La dirección del host puede ser un nombre de computadora, una dirección IP o puede crear una URL desde la clase Uri.
            If My.Computer.Network.IsAvailable AndAlso My.Computer.Network.Ping(HostAddress, 1000) Then
                Return True
            Else
                Return False
            End If
        Catch ex As Exception
            Return False
        End Try
    
    End Function


    Gracias por usar los foros de MSDN. 

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.




    viernes, 26 de junio de 2020 18:17
    Moderador

Todas las respuestas

  • Quizá lo más sencillo sea simplemente enviar un GET a cada dirección y ver si te llega una respuesta.

    Construye un wc=New WebClient()

    y luego por cada url haz resultado=wc.DownloadString(url)

    Haz esto último dentro de un try...catch, y si te da un error quiere decir que esa url no está respondiendo.

    viernes, 26 de junio de 2020 6:04
  • Hola  Mamite,

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te recomiendo probar estas dos opciones de código. La primera opción se inclina hacia extraer la información del encabezado de la respuesta web. Esta función se asegura de que la respuesta no provenga de otra dirección o que haya sido redirigida automáticamente.

    Public Function EsUrlActiva(ByVal HostAddress As String) As Boolean
        EsUrlActiva = False
    
        Dim url As New System.Uri(HostAddress)
        Dim wRequest As System.Net.WebRequest
        wRequest = System.Net.WebRequest.Create(url)
        Dim wResponse As System.Net.WebResponse
        Try
            wResponse = wRequest.GetResponse()
            'La dirección de respuesta es la misma que la HostAddress para evitar falsos positivos de una redirección automática.
            If wResponse.ResponseUri.AbsoluteUri().ToString = HostAddress Then 'incluir query strings
                EsUrlActiva = True
            End If
            wResponse.Close()
            wRequest = Nothing
        Catch ex As Exception
            wRequest = Nothing
            MsgBox(ex.ToString)
        End Try
    
        Return EsUrlActiva
    End Function

    La segunda opción determina el tiempo de espera y qué tan buena o mala es la conexión al servidor.

    Private Function EsElServerAccesible(ByVal HostAddress As Uri) As Boolean
        Try
            '1. Verifica si la computadora tiene acceso a la red.
            '2. Comprueba si el host es accesible y qué tan buena es la velocidad de respuesta.
            '3. La dirección del host puede ser un nombre de computadora, una dirección IP o puede crear una URL desde la clase Uri.
            If My.Computer.Network.IsAvailable AndAlso My.Computer.Network.Ping(HostAddress, 1000) Then
                Return True
            Else
                Return False
            End If
        Catch ex As Exception
            Return False
        End Try
    
    End Function


    Gracias por usar los foros de MSDN. 

    Gabriel Castro

     ____________________________ 

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.




    viernes, 26 de junio de 2020 18:17
    Moderador
  • Hola Mamite,

    Gracias por confirmar que se ha encontrado una solución a la consulta realizada. Debido a ello, este hilo será cerrado. 

    Si es necesario, por favor abra un nuevo hilo. 

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN. 

    Gabriel Castro
    lunes, 29 de junio de 2020 15:49
    Moderador