viernes, 30 de noviembre de 2007

¿Tengo Internet? System.Net.WebResponse.

Metiéndome en berenjenales para practicar con las clases de la librería system.net me propuse hacer una pequeña aplicación que me indique cuando los "magos" de sistemas me cortan internet.

Primero pensé en un Ping, pero me he encontrado que con lo de los ataques del "Ping de la muerte" es mas fácil encontrar un punto y coma en un listado de Javascript que un servidor que responda a dicha petición.

Entonces me digo ¿Y si llamo a una URL? Asín, si tengo la seguridad que funciona la dirección a la que llamo (o también probando una colección de URL's) si conecto y obtengo respuesta es que tengo Internet y si no conecto es que estoy desconectado (y me ha salido un bonito pareado).

Para ello hago esta función que invoco desde el Main() de una aplicación de consola.


Sub probarinternet()

Try
Dim url As String = "http://www.nesquicia.com/"
Dim request As WebRequest = WebRequest.Create(url)
' Le bajo el tiempo TimeOut para que vaya más alegre la aplicación
request.Timeout = 1000

Dim response As WebResponse = request.GetResponse

' Hago que espere 3 segundos entre conexiones correctas
System.Threading.Thread.Sleep(3000)
response.Close()

Catch ex As Exception
' Escribo el error y la hora en que ha fallado.
Console.WriteLine(Date.Now & ": " & ex.Message & vbCrLf)
End Try

End While

End Sub

Y el resultado es... que los chapuzas de sistemas nos hacen una desconexión cada pocos segundos!!! Así va de lento esto y falla tanto.

No hay comentarios: