WinMTR Alternative

mr999

Captain
Registriert
Jan. 2004
Beiträge
3.243
Hi,

ich suche eine Alternative zu WinMTR.

Das Programm ist ja soweit schon ganz gut und zeigt einem auch an, wie hoch der schlechteste Ping war. Aber nicht wann das aufgetreten ist und wie häufig.

Ich habe nämlich teilweise einen zu hohen Ping. Dieser geht manchmal hoch bis auf 2000 ms.
Kennt jemand eine Alternative zu WinMTR?
Mit dem Programm sollte ersichtlich sein, wann und wie häufig der Ping hochging.
 
Zuletzt bearbeitet:
Hm.. Ich nutze WinMTR offen gestanden nicht, kann man die gesammelten Daten nicht exportieren, um sie zB in Excel auszuwerten?

*edit
Ok, man bekommt nur die Statistik zu sehen, aber keine Details.
Also ich mach solche Sachen gerne mal mit Batch-Dateien. Eine Schleife, ein Ping, eine Ausgabe als csv. Die Auswertung mache ich dann in Excel.
 
Zuletzt bearbeitet:
Wie funktioniert das genau? Wäre super, wenn Du mir helfen könntest. Ich nutze Windows 8.1, Excel habe ich ebenfalls.
 
Code:
@ECHO OFF
SETLOCAL EnableDelayedExpansion

SET logfile=c:\temp\ping.csv
SET match=TTL

SET ip=%1
SET delay=%2

IF "%ip%"=="" GOTO:SYNTAX
IF "%delay%"=="" SET delay=1

SET /A delay+=1



:DOPING
SET latency=*
SET timestamp=%date:~6%-%date:~3,2%-%date:~0,2% %time%

FOR /F "tokens=7 delims=^= " %%a IN ('ping %ip% -n 1 ^| find ^/I ^"%match%^"') DO (
	SET latency=%%a
	SET latency=!latency:~0,-2!
)

ECHO %timestamp% %ip% %latency%
ECHO %timestamp% %ip% %latency% >> %logfile%

ping localhost -n %delay% >nul

GOTO:DOPING


:SYNTAX
ECHO Syntax:	logping.bat ip delay

Es kann sein, dass du das je nach Windows-Version und Sprache etwas mofizieren musst. Gesucht wird im ping-Ergebnis nach der Zeile mit "TTL". Dort wird im 7. Feld (getrennt durch " " und "=") nach der Latenz gesucht und die letzten zwei Zeichen abgeschnitten ("ms").
Den Intervall kannst du frei wählen (in Sekunden).

Code:
  1  | 2  |       3        |  4  |5 | 6  |  7 | 8 | 9
Reply from 173.194.113.120: bytes=32 time=13ms TTL=57

Das ist eine Endlosschleife und muss demnach manuell beendet werden (CTRL+C).


Die Ausgabe
(Zeile 26/27 sind Tab-getrennt, geht evtl. durch copy&paste des Codes verloren):

Code:
G:\>logping.bat 8.8.8.8 1
2015-09-17 18:45:33,27  8.8.8.8 13
2015-09-17 18:45:34,88  8.8.8.8 13
2015-09-17 18:45:36,07  8.8.8.8 13
2015-09-17 18:45:37,29  8.8.8.8 13
2015-09-17 18:45:38,46  8.8.8.8 13
2015-09-17 18:45:39,91  8.8.8.8 13
2015-09-17 18:45:41,27  8.8.8.8 13
2015-09-17 18:45:42,60  8.8.8.8 13
2015-09-17 18:45:43,99  8.8.8.8 13
2015-09-17 18:45:45,10  8.8.8.8 13
2015-09-17 18:45:46,23  8.8.8.8 13
2015-09-17 18:45:47,34  8.8.8.8 13
2015-09-17 18:45:48,45  8.8.8.8 13
^CTerminate batch job (Y/N)? y

In Excel importierst du die Datei einfach als Tab-getrennt (du kannst sonst auch ";" in 26/27 zwischen die Felder setzen. Mit Tab müsste Excel die Datei sogar direkt mit Doppelklick öffnen können. Auswertungen mit min/max solltest du ja hinbekommen ;)
 
Zuletzt bearbeitet:
Und? Wie ist der Stand? Ein Kommentar wäre nett..
 
Danke, es funktioniert irgendwie nicht. Es kommt dauernd eine Fehlermeldung.

Unbenannt.png
 
Zuletzt bearbeitet:
Was ist das denn für eine Fehlermeldung? OpenWithToastLogo?!? Hast du die Batch 1:1 von oben kopiert? Ich hab das gerade nochmal getestet (mit obigem Code) und es funktioniert einwandfrei.
 
Ich habe einfach alles das was du beim ersten "code" gepostet hast, in das cmd fenster kopiert. Dann kommt immer die Fehlermeldung.
Oder muss ich alle 3 codes kopieren? Ich bin nur Anwender und habe keine Programmierkenntnisse.
 
Zuletzt bearbeitet:
Das ist eine Batch-Datei. Öffne Notepad, kopiere den Code rein, speichere die Datei als "logping.bat", starte die Datei.
 
Nur das hier:

Code:
@ECHO OFF
SETLOCAL EnableDelayedExpansion

SET logfile=c:\temp\ping.csv
SET match=TTL

SET ip=%1
SET delay=%2

IF "%ip%"=="" GOTO:SYNTAX
IF "%delay%"=="" SET delay=1

SET /A delay+=1



:DOPING
SET latency=*
SET timestamp=%date:~6%-%date:~3,2%-%date:~0,2% %time%

FOR /F "tokens=7 delims=^= " %%a IN ('ping %ip% -n 1 ^| find ^/I ^"%match%^"') DO (
	SET latency=%%a
	SET latency=!latency:~0,-2!
)

ECHO %timestamp% %ip% %latency%
ECHO %timestamp% %ip% %latency% >> %logfile%

ping localhost -n %delay% >nul

GOTO:DOPING


:SYNTAX
ECHO Syntax:	logping.bat ip delay

Zeile 26/27 sind Tab-getrennt, geht evtl. durch copy&paste des Codes verloren

Der Rest war nur zur Erklärung bzw. ein Beispiel für die Ausgabe.
 
Geht nicht. Das cmd Fenster geht immer nur ganz kurz auf und dann wieder zu.
 
Du musst natürlich schon etwas genauer lesen. Oben hatte ich beschrieben wie du das Ding startest, mit Beispiel wie die Ausgabe aussieht. Na gut, machen wir es mal Schritt für Schritt.


Start -> cmd -> Enter

Jetzt wechselst du in das Verzeichnis wo du die Batch-Datei abgelegt hast.

cd /d Laufwerk:hier\liegt\die\batch

Dann startest du die Batch wie folgt:

logping.bat 8.8.8.8 1

Die IP kannst du frei wählen und die 1 ist der Intervall zwischen den Pings in Sekunden. Gespeichert wird das Ergebnis in der Log-Datei c:\temp\ping.csv (siehe Zeile 4 im Code, kann nach Bedarf angepasst werden).
 
cd bedeutet wohl change directory?
Schon das funktioniert nicht, wenn ich auf c wechseln möchte

die logping.bat habe ich direkt auf c erstellt

Unbenannt.png
 
Habe ich irgendwas von "/c" geschrieben?

Wenn du schon irgendwo auf C: bist, dann kommst du mit "cd " auf c:\

Ach Dreck, der löscht den Backslash...


So:

Code:
cd \
 
ich habe nur eine festplatte c
Wenn ich nur cd eingebe kommt:


Unbenannt.png

Und ich lande da wo ich vorher schon war:
C:\Windows\system32>
 
Zuletzt bearbeitet:
Lies #17 bitte nochmal. Das Forum hat den Backslash gelöscht.
 
Ja, jetzt hat es wohl funktioniert :)

Ich musste zusätzlich noch einen temp ordner anlegen.
Dadrin ist jetzt auch eine ping.csv Datei
Aber die enthält nur die Zeit und die IP die ich anpinge, aber nicht die Höhe des Pings in ms.

Unbenannt.png
 
Zuletzt bearbeitet:
Zurück
Oben