Netstat - rückgabe speichern?



  • hi.
    gibt man in die konsole netstat ein, werden bekanntlich die verbindungen, und die ports über dei sie laufen angezeigt.
    ich hbae das mal mit
    system("netstat");
    geregelt.

    das problem:
    ich weiß nicht, wie ich den spaß in eine variable bekommen soll.
    es läßt sich nur in int speichern, und gibt dann einfach 0 zurück.

    wie kann ich die rückgabe speichern, die normalerweiße erscheint?



  • Du kannst

    system("netstat > outfile.log");
    

    schreiben und die Ausgabe aus der Datei outfile.log auslesen.

    Edit: Das, was system dir zurückgibt, ist der Exit Code von netstat. 0 bedeutet normalerweise successful.

    Den Exit Code kennst du auch von deinen eigenen Programmen:

    int main()
    {
        return 0;    // <- das ist der Exit Code
    }
    


  • okay, danke.



  • Hi, wenn ich es versuche, kommt da: Der Prozess kann nicht auf die Datei zugreifen,
    da sie von einem anderen prozess verwendet wird.

    Hatt wer eine Idee wiso das kommt bzw wie ich das Problem lösen kann??



  • würde auch eine BATCH-File reichen

    echo off
    c:
    cd\
    netstat > c:\offline.log
    notepad c:\offline.log
    echo on
    

    hast Du nun ein Analyseprogramm in C/C++ aufgesetzt was Parameter in Form einer Datei bekommt um die Programmauswertung von "netstat" auszuwerten.

    rufst Du im Skript an der Stelle:

    notepad c:\offline.log
    

    eben deine Anlyseprog auf:

    echo off
    c:
    cd\
    netstat > c:\offline.log
    DeinAnalyseProg c:\offline.log
    echo on
    

    Aber das geht so einfach nur wenn Du der Systemvariablen PATH
    den Pfad wo dein Programm liegt sagst!

    Gruss sclearscreen


Anmelden zum Antworten