Veröffentlicht 16. Mai 200817 j Moinsen @all, ich muss für die Arbeit einen Konsolenanwendung schreiben. Hauptbestandteil ist die MAC-Adresse auszulesen und sie in einem String speichern (dient später zur Vergleichzwecke). Ich möchte den 'ipconfig /all'- Output auslesen, diesen in einem String speichern und dann den String vergleichen. Das Problem ist wie lese ich den Output und wie parse (durchsuche) ich den String. Bin dankbar für jede Antwort! Mfg, foxxx P.S.: ich nutze DEV-C++ und darf kein .NET - Framework nutzen oder MFC Bearbeitet 16. Mai 200817 j von foxxx
16. Mai 200817 j Ihh Dev-C++... Anhand von ipconfig nehm ich mal an, dass du Windows verwendest. Three Ways To Get Your System's Network MAC Address Da stehen drei Möglichkeiten, das programmtechnisch zu realisieren. (Output von Consolenanwendungen auslesen ist pfui.)
16. Mai 200817 j Thx, jo ich weiss, dass das nicht die feine Art ist, aber bei den "Three Ways ..." kommen alle MAC#S raus. Auch die virtuellen. Da wir auf den Kisten auch VM-Ware laufen haben und noch so andere MAC's (wie Wlan und BT) eignet sich das Beispiel nich. Bei den Output kann ich bis zu nem bestimmten Punkt parsen und dann dort mir die Information holen mit nem festen String vergleichen und dann die Funktionen loslassen (automatisch). Mfg, foxxx
16. Mai 200817 j Ich wette irgendwie gibts da auch ne Möglichkeit herauszufinden ob die physikalisch oder virtuell ist. (Ich glaub die physikalischen werden auch bei ipconfig zu erst angezeigt und müssten demnach auch in den Funktionen zu erst angezeigt werden) Wie auch immer, die andere (dreckige) Möglichkeit, die mir noch einfallen würde, wäre die Ausgabe von ipconfig in eine temporäre Datei umzuleiten und dort dann jeweils die benötigten MACs auslesen. Danach natürlich die Datei wieder löschen.
16. Mai 200817 j hmm ... geht das umletien nicht in einem string und denn dann iregendwie durchsuchen? bzw wie leite den output in einer datei und wie tu ich die datei dann mit nem konstanten string vergleichen???:confused: mfg, foxxx
16. Mai 200817 j hmm ... geht das umletien nicht in einem string und denn dann iregendwie durchsuchen? bzw wie leite den output in einer datei und wie tu ich die datei dann mit nem konstanten string vergleichen???:confused: mfg, foxxx Unter *nixen geht das ganz einfach mit einer Pipe. Unter Windows laut Wikipedia auch.
23. Mai 200817 j sorry war nicht zuhause bis heute. super vielen dank für die schnellen antworten. ich werde mich am we hinsetzen und testen. mal noch eine frage: wie kann ich eine datei(ihren inhalt) parsen und ein fragment aus deren inhalt extrahieren und an einem string übergeben? mfg, foxxx
24. Mai 200817 j hmm ... geht das umletien nicht in einem string und denn dann iregendwie durchsuchen? bzw wie leite den output in einer datei und wie tu ich die datei dann mit nem konstanten string vergleichen???:confused: mfg, foxxx Ok, ich komm nit aus deiner Programmierecke, aber unter VB.NET wär es so: Dim oInfo As System.Diagnostics.ProcessStartInfo = New System.Diagnostics.ProcessStartInfo("ipconfig", "/all") oInfo.UseShellExecute = False oInfo.ErrorDialog = False oInfo.CreateNoWindow = True oInfo.RedirectStandardOutput = True Dim p As Process = System.Diagnostics.Process.Start(oInfo) Dim oReader As System.IO.StreamReader = p.StandardOutput RichTextBox1.Text = oReader.ReadToEnd() oReader.Close() Dann wäre die gesamte Ausgabe der Shell in der Richtextbox, kein Fenster ploppt auf... Vielleicht hilfts dir ja Bearbeitet 24. Mai 200817 j von SoL_Psycho
26. Mai 200817 j Hi, wenn du den Inhalt einer Datei auslesen willst schau dir mal <fstream> an. Die Referenz findest du hier.
10. Juni 200817 j thx @all! ihr habt mir sehr geholfen. ich habe 'ipconfig /all' in einer datei umgeleitet und diese wiederrum in einem string geladen. dann hab ich sechs konstante variable erstellt und diese mit dem string verglichen. stand der inhalt einer konstanten variable in dem string, so werden bestimmte anweisungen erfüllt. mfg und danke nochmal an alle, foxxx
30. August 200817 j du hättest auch die Datei in eine Listbox laden können und dann jede Zeile auf einen bestimmten SubString durchsuchen lassen ( zB. "physikalische Adresse") .... achja .. die Listbox dann natürlich visible auf false setzen
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.