none
Ping mit Ausgabe ala Dosfenster Ping RRS feed

  • Frage

  • Hallo,ich führe mit folgenden Befehlen einen Ping aus. Ich möchte jetzt aber eine Ausgabe (siehe unten) wie man sie sonst in einem Dosfenster hat. Wie mache ich das.

      Dim pingSender As New Ping()
            Dim options As New PingOptions()
            options.DontFragment = True
            ' Create a buffer of 32 bytes of data to be transmitted.
            Dim data As String = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
            Dim buffer As Byte() = Encoding.ASCII.GetBytes(data)
            Dim timeout As Integer = 120
            Dim reply As PingReply = pingSender.Send("192.168.2.1", timeout, buffer, options)
            If reply.Status = IPStatus.Success Then
                Console.WriteLine("Address: {0}", reply.Address.ToString())
                Console.WriteLine("RoundTrip time: {0}", reply.RoundtripTime)
                Console.WriteLine("Time to live: {0}", reply.Options.Ttl)
                Console.WriteLine("Don't fragment: {0}", reply.Options.DontFragment)
                Console.WriteLine("Buffer size: {0}", reply.Buffer.Length)
            End If


    Ping wird ausgeführt für 192.168.2.1 mit 32 Bytes Daten:
    Antwort von 192.168.2.1: Bytes=32 Zeit=2ms TTL=64
    Antwort von 192.168.2.1: Bytes=32 Zeit=2ms TTL=64
    Antwort von 192.168.2.1: Bytes=32 Zeit=2ms TTL=64
    Antwort von 192.168.2.1: Bytes=32 Zeit=2ms TTL=64

    Ping-Statistik für 192.168.2.1:
        Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
        (0% Verlust),
    Ca. Zeitangaben in Millisek.:
        Minimum = 2ms, Maximum = 2ms, Mittelwert = 2ms

    Mittwoch, 12. März 2014 20:18

Antworten

  • Hallo,
    eigentlich ist das nur die Formatierung in der Konsole:
            Dim pingSender As New Ping()
            Dim options As New PingOptions()
            options.DontFragment = True
            ' Create a buffer of 32 bytes of data to be transmitted.'
            Dim data As String = "01234567012345670123456701234567"
            Dim buffer As Byte() = Encoding.ASCII.GetBytes(data)
            Dim timeout As Integer = 120
            Dim address = "173.194.112.24"
            Console.WriteLine("Ping wird ausgeführt für " & address & "mit " & buffer.Length & "Bytes Daten:")
            For i As Integer = 0 To 3 '4mal wiederhohlen'
                Dim reply As PingReply = pingSender.Send(address, timeout, buffer, options)
                If reply.Status = IPStatus.Success Then
                    Console.WriteLine("Antwort von " & reply.Address.ToString() & ": Bytes=" & buffer.Length & " Zeit=" & reply.RoundtripTime & "ms TTL=" & reply.Options.Ttl)
                ElseIf reply.Status = IPStatus.TimedOut Then
                    Console.WriteLine("Timeout")
                Else'Am besten noch weiter auseinander nehmen'
                    Console.WriteLine("Sonstiger Fehler")
                End If
            Next


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.


    Mittwoch, 12. März 2014 20:45
    Moderator

Alle Antworten

  • Hallo,
    eigentlich ist das nur die Formatierung in der Konsole:
            Dim pingSender As New Ping()
            Dim options As New PingOptions()
            options.DontFragment = True
            ' Create a buffer of 32 bytes of data to be transmitted.'
            Dim data As String = "01234567012345670123456701234567"
            Dim buffer As Byte() = Encoding.ASCII.GetBytes(data)
            Dim timeout As Integer = 120
            Dim address = "173.194.112.24"
            Console.WriteLine("Ping wird ausgeführt für " & address & "mit " & buffer.Length & "Bytes Daten:")
            For i As Integer = 0 To 3 '4mal wiederhohlen'
                Dim reply As PingReply = pingSender.Send(address, timeout, buffer, options)
                If reply.Status = IPStatus.Success Then
                    Console.WriteLine("Antwort von " & reply.Address.ToString() & ": Bytes=" & buffer.Length & " Zeit=" & reply.RoundtripTime & "ms TTL=" & reply.Options.Ttl)
                ElseIf reply.Status = IPStatus.TimedOut Then
                    Console.WriteLine("Timeout")
                Else'Am besten noch weiter auseinander nehmen'
                    Console.WriteLine("Sonstiger Fehler")
                End If
            Next


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.


    Mittwoch, 12. März 2014 20:45
    Moderator
  • Hi ja danke klappt soweit.
    Ich müßte jetzt aber noch das mit der Ping-Statistik haben.
    Gibt es dafür auch eine fertige Funktion?

    Ping-Statistik für ...
    Pakete: Gesendet

    usw.

    Freitag, 28. März 2014 13:38
  • Hallo,
    in dem Fall kannst du einfach alles beim senden der Pings mitzählen und zum Schluss auswerten:
            Dim pingSender As New Ping()
            Dim options As New PingOptions()
            options.DontFragment = True
            ' Create a buffer of 32 bytes of data to be transmitted.'
            Dim data As String = "01234567012345670123456701234567"
            Dim buffer As Byte() = Encoding.ASCII.GetBytes(data)
            Dim timeout As Integer = 120
            Dim address = "173.194.112.24"
    
            Dim sended As Integer = 0
            Dim received As Integer = 0
            Dim lost As Integer = 0
            Dim times As New List(Of Long)
    
            Console.WriteLine()
            Console.WriteLine("Ping wird ausgeführt für " & address & "mit " & buffer.Length & "Bytes Daten:")
            For i As Integer = 0 To 3 '4mal wiederhohlen'
                Dim reply As PingReply = pingSender.Send(address, timeout, buffer, options)
                If reply.Status = IPStatus.Success Then
                    Console.WriteLine("Antwort von " & reply.Address.ToString() & ": Bytes=" & buffer.Length & " Zeit=" & reply.RoundtripTime & "ms TTL=" & reply.Options.Ttl)
                    received += 1 '1 Paket empfangen'
                Else
                    lost += 1 '1 Paket verloren'
                    If reply.Status = IPStatus.TimedOut Then
                        Console.WriteLine("Timeout")
                    Else 'Am besten noch weiter auseinander nehmen'
                        Console.WriteLine("Sonstiger Fehler")
                    End If
                End If
                sended += 1 '1 neues Paket wurden gesendet'
                times.Add(reply.RoundtripTime) 'Vergangene Zeit bei dem Ping'
                Threading.Thread.Sleep(200) 'Kurze Zeit warten, macht ping.exe auch - dadurch werden scheinbar timeouts verhindert'
            Next
    
            'Nachfolgend die Auswertung'
            Console.WriteLine()
            Console.WriteLine("Ping-Statistik für " & address & ":")
            Console.WriteLine("    Pakete: Gesendet = " & sended & ", Empfangen = " & received & ", Verloren = " & lost)
            Console.WriteLine("    (" & CInt(100D / sended * lost) & "% Verlust)")
            Console.WriteLine("Ca. Zeitangaben in Millisek.:")
            Console.WriteLine("    Minimum = " & times.Min() & "ms, Maximum = " & times.Max() & "ms, Mittelwert = " & CInt(times.Sum() / times.Count) & "ms") 'Mit den Erweiterungsmethoden aus System.Linq geht es am schnellsten'
            Console.WriteLine()

    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    Freitag, 28. März 2014 14:02
    Moderator
  • Danke dir. Habe es noch ein bisschen nach meinen Gegebenheiten angepasst. Läuft aber.
    Mittwoch, 2. April 2014 08:00