System.Net.NetworkInformation

Ejemplo de Ping en .Net 2.0

.NET 2.0 dispone de un nuevo espacio de nombres pensado específicamente para crear aplicaciones de diagnóstico de redes. Se trata de System.Net.NetworkInformation.

En él encontramos clases para obtener información sobre las interfaces de red de un equipo, información trasegada por la red, recibir notificaciones (por ejemplo de que se ha modificado la dirección de una tarjeta), etc… Es muy interesante echarle un vistazo.

Para hacer un primer ejemplo con ella usaremos la clase Ping, que permite (obviamente) hacer un «ping» ICMP a cualquier nodo de una red. Permite hacerlo de forma síncrona o asíncrona. En la versión anterior de la plataforma había que hacerlo «a pelo» y era bastante complicado. Ahora es sencillísimo.

Por ejemplo, el siguiente código realiza cuatro pings a Google y devuelve los resultados de cada petición.

' Versión VB .Net
Imports System.Net
Imports System.Net.NetworkInformation
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim i As Integer
        Dim eco As New System.Net.NetworkInformation.Ping
        Dim res As System.Net.NetworkInformation.PingReply
        Dim ip As IPAddress

        ' Dirección de Google
        ip = IPAddress.Parse("66.249.87.104")
        For i = 1 To 4
            res = eco.Send(ip)

            Console.Write("Respuesta desde " & res.Address.ToString & ": bytes:" & _
                          res.Buffer.Length & " tiempo=" & res.RoundtripTime & " (" & _
                          res.Status.ToString & ")" & vbCrLf)
        Next

    End Sub
End Class

En la consola veremos aparecer algo similar a esto:

Respuesta desde 66.249.87.104: bytes:32 tiempo=102 (Success)
Respuesta desde 66.249.87.104: bytes:32 tiempo=95 (Success)
Respuesta desde 66.249.87.104: bytes:32 tiempo=94 (Success)
Respuesta desde 66.249.87.104: bytes:32 tiempo=97 (Success)

Es muy fácil crear una aplicación clónica del «ping» de la línea de comandos de Windows, o mejor aún, crear una versión con Windows Forms que haga más cosas y sea más fácil de usar. ¡El que se anime que nos lo mande y lo publicaremos!

Esta clase Ping es muy útil para comprobar a intervalos regulares si un servidor está funcionando o no, o hacer un barrido de una red para descubrir qué nodos están activos.

Publicado en Campus MVP