2009-08-15 17 views
13

Potrzebuję mojej aplikacji do wysłania polecenia ping do adresu, który opiszę później i po prostu skopiuj średni czas pingowania do .Tekstu etykiety.Wykonywanie "pingowania" wewnątrz mojej aplikacji C#

Każda pomoc?

EDIT:

znalazłem rozwiązanie w przypadku ktoś jest zainteresowany:

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

Dodaj swoją odpowiedź i link do odpowiedniej dokumentacji MSDN jako właściwą odpowiedź zamiast aktualizowania pytanie. W ten sposób uzyskujesz reputację i zachowuje spójny format kontroli jakości. Odpowiedni link MSDN: http://msdn.microsoft.com/en-us/library/system.net.networkinformation.pingreply.aspx –

Odpowiedz

32

dać wyglądać klasę NetworkInformation.Ping.

Przykład:

Zastosowanie:

PingTimeAverage("stackoverflow.com", 4); 

Realizacja:

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

Dziękuję za odpowiedź. Pracował cudownie. : D –

+0

Nie ma za co! – CMS

+0

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

0

Podobnie jak sidenote do tego. Jest już projekt na sourceforge robiący to, co chcesz. To również implementację ICMP (RFC 792)

Sourceforge Project

Powiązane problemy