2009-08-15 9 views
13

Necesito que mi aplicación haga ping a una dirección que especificaré más adelante y simplemente copie el Tiempo promedio de ping a un .Texto de una etiqueta.Haciendo un "ping" dentro de mi aplicación C#

¿Algún ayuda?

EDIT:

he encontrado la solución en caso de que a alguien le interesa:

Ping pingClass = new Ping();   
PingReply pingReply = pingClass.Send("logon.chronic-domination.com"); 
label4.Text = (pingReply.RoundtripTime.ToString() + "ms"); 
+3

Añadir su respuesta y un enlace a la documentación pertinente de MSDN como una respuesta apropiada en lugar de actualizar la pregunta. Obtiene reputación de esa manera y mantiene constante el formato del control de calidad. Enlace relevante de MSDN: http://msdn.microsoft.com/en-us/library/system.net.networkinformation.pingreply.aspx –

Respuesta

32

dar un look de la clase NetworkInformation.Ping.

Un ejemplo:

Uso:

PingTimeAverage("stackoverflow.com", 4); 

Implementación:

public static double PingTimeAverage(string host, int echoNum) 
{ 
    long totalTime = 0; 
    int timeout = 120; 
    Ping pingSender = new Ping(); 

    for (int i = 0; i < echoNum; i++) 
    { 
     PingReply reply = pingSender.Send (host, timeout); 
     if (reply.Status == IPStatus.Success) 
     { 
      totalTime += reply.RoundtripTime; 
     } 
    } 
    return totalTime/echoNum; 
} 
+0

Gracias por su respuesta. Funcionó maravillosamente. : D –

+0

¡De nada! – CMS

+0

PingTimeAverage ("i.dont.exist.com", 1000) == 0 –

0

Así como un sidenote a esto. Ya hay un proyecto en sourceforge haciendo sobre eso lo que quieres. Esto también ha incluido una implementación de ICMP (RFC 792)

Sourceforge Project

Cuestiones relacionadas