Hallo ich benötige Hilfe.
Ich möchte gerne über eine Textbox einen Host angeben und danach
in einer anderen Textbox (Multiline) durch Buttonklick die Traceroute bekommen.
Leider finde ich nirgends Informationen darüber.
--> Forum Suche: Scheinbar Ergebnislos
--> Google Suche: Keine Hilfreichen Ergebnisse
Ganz grober Code aus einem Pingmodul
int ExitCode = -1;
System.Diagnostics.Process Process = new System.Diagnostics.Process();
Process.StartInfo.UseShellExecute = false;
Process.StartInfo.CreateNoWindow = true;
Process.StartInfo.RedirectStandardOutput = true;
Process.StartInfo.FileName = "tracert.exe";
Process.StartInfo.Arguments = zieladresse1;
Process.Start();
Process.WaitForExit();
ExitCode = Process.ExitCode;
Application.DoEvents();
Nur das ich hier eine Antwort bekomme die nur 0 / 1 ist
und nicht wie beim Tracert Informationen (Traceroute) enthalten soll.
Kann mir jemand helfen?
Schöne Grüße
👶-> :]-> 8o-> 🙂
Hallo RPlaner,
ich habe einfach in Google "Traceroute mit C#" eingegeben, und bin beim ersten oder zweiten link prompt auf das gestossen.
http://www.chrisch.info/lccms/downloadarchive/00006/download.htm
Habe zwar nicht nachgeschaut ob das wirklich das machst, was du brauchst, dem namen nach, sollte das aber passen.
mfg
MichlG
Hallo,
lese einfach den ganzen Ausgabestream mit Process.StandardOutput.ReadLine() in einer Schleife aus. Wann der Stream zu ende ist kannst du mit der Variable Process.StandardOutput.EndOfStream abprüfen.
Gruss
tscherno
Hallo RPlaner,
ich habe einfach in Google "Traceroute mit C#" eingegeben, und bin beim ersten oder zweiten link prompt auf das gestossen.
Habe zwar nicht nachgeschaut ob das wirklich das machst, was du brauchst, dem namen nach, sollte das aber passen.
mfg
MichlG
Hallo, irgendwie ist mir der Code auf der Seite Suspekt,
alleine schon weil ich Haufenweise Fehler beim ausführen kommen.
Es gibt doch schon den Befehl "tracert" in der Konsole,
ich könnte ja diesen nutzen.
Weiß jemand wie?
Wie oben schon beschrieben, Codeansatz ist vorhanden.
👶-> :]-> 8o-> 🙂
Hallo RPlaner,
bitte hinterlasse doch für die Nachwelt auch noch Deine Lösungsmöglichkeit hier in persistenter Form, danke.
Grüße
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Gerne doch:
Code ist zur freien Verwendung!
Anmerkung: Tracert sollte in einem Backgroundworker laufen,
da die Visualisiertung während des Tracerts nicht angesprochen werden kann
und das Programm einfriert.
int ExitCode = -1; // kann optional verwendet werden ob Tracert erfolgreich war (wird generell nicht benötigt)
string ExitCode2;
System.Diagnostics.Process Process = new System.Diagnostics.Process();
Process.StartInfo.UseShellExecute = false;
Process.StartInfo.CreateNoWindow = true;
Process.StartInfo.RedirectStandardOutput = true;
Process.StartInfo.FileName = "tracert.exe";
Process.StartInfo.Arguments = zieladresse1; // Hostadresse
Process.Start();
Process.WaitForExit();
ExitCode = Process.ExitCode;
ExitCode2 = Process.StandardOutput.ReadToEnd();
Application.DoEvents();
textBox1.Text = ExitCode2.ToString(); // Ausgabe des Tracerts in einer Multiline Textbox
catch
{
label10.Text = "Es ist ein Fehler aufgetreten"; // Im Fehlerfall (z.b während des Tracert Internetverbindung verloren). Fehler wie "Server kann nicht aufgelöst werden", erscheinen direkt im Fenster
}
👶-> :]-> 8o-> 🙂
Seine Lösung war, er hat erkannt dass ExitCode was falsches ist, und dementsprechend richtig gepostet 🙂
lg Lion