Laden...

[erledigt] Tracert

Erstellt von Blogscreen vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.381 Views
Blogscreen Themenstarter:in
344 Beiträge seit 2007
vor 16 Jahren
[erledigt] Tracert

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-> 🙂

3.430 Beiträge seit 2007
vor 16 Jahren

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

630 Beiträge seit 2007
vor 16 Jahren

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

To understand recursion you must first understand recursion

http://www.ilja-neumann.com
C# Gruppe bei last.fm

Blogscreen Themenstarter:in
344 Beiträge seit 2007
vor 16 Jahren

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-> 🙂

Blogscreen Themenstarter:in
344 Beiträge seit 2007
vor 16 Jahren

Lösung gefunden.
Dankeschön 🙂

👶-> :]-> 8o-> 🙂

4.506 Beiträge seit 2004
vor 16 Jahren

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!”

Blogscreen Themenstarter:in
344 Beiträge seit 2007
vor 16 Jahren

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-> 🙂

L
770 Beiträge seit 2006
vor 16 Jahren

Seine Lösung war, er hat erkannt dass ExitCode was falsches ist, und dementsprechend richtig gepostet 🙂

http://www.mycsharp.de/wbb2/thread.php?threadid=52760

lg Lion