foxxx Geschrieben 16. Mai 2008 Geschrieben 16. Mai 2008 (bearbeitet) 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 2008 von foxxx Zitieren
TDM Geschrieben 16. Mai 2008 Geschrieben 16. Mai 2008 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.) Zitieren
foxxx Geschrieben 16. Mai 2008 Autor Geschrieben 16. Mai 2008 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 Zitieren
TDM Geschrieben 16. Mai 2008 Geschrieben 16. Mai 2008 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. Zitieren
foxxx Geschrieben 16. Mai 2008 Autor Geschrieben 16. Mai 2008 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 Zitieren
Panke Geschrieben 16. Mai 2008 Geschrieben 16. Mai 2008 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. Zitieren
foxxx Geschrieben 23. Mai 2008 Autor Geschrieben 23. Mai 2008 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 Zitieren
Panke Geschrieben 23. Mai 2008 Geschrieben 23. Mai 2008 wie sieht die datei aus? Was genau willst du auslesen? Zitieren
SoL_Psycho Geschrieben 24. Mai 2008 Geschrieben 24. Mai 2008 (bearbeitet) 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 2008 von SoL_Psycho Zitieren
regarn Geschrieben 26. Mai 2008 Geschrieben 26. Mai 2008 Hi, wenn du den Inhalt einer Datei auslesen willst schau dir mal <fstream> an. Die Referenz findest du hier. Zitieren
foxxx Geschrieben 10. Juni 2008 Autor Geschrieben 10. Juni 2008 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 Zitieren
nwa Geschrieben 30. August 2008 Geschrieben 30. August 2008 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 Zitieren
Amstelchen Geschrieben 31. August 2008 Geschrieben 31. August 2008 getmac.exe hätte es vermutlich auch getan s'Amstel Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.