Programmtraffic ermitteln - wie?

  • Gibt es eine Möglichkeit, den Traffic eines Programms zu ermittlen? Am besten mit AutoIt-/Windows-Bordmitteln.

    Ich habe ein kleines Prog geschrieben, welches mir Dateien auf einzelne Server hochlädt. Also Uploadseite aufrufen, ausfüllen, Upload-Button drücken.
    Ein gutes Beispiel dafür wäre Rapidshare. Doch da hätte ich wenigstens eine Grafik, welche mir die Prozente/erledigten Traffic anzeigt.
    Bei meinen Servern gibt es sowas leider nicht.

    Kann ich nun trotzdem irgenwie ermitteln, wie viel Traffic die momentane Datei bereits verursacht hat? Ich weiß, dass ich über netstat -a eine Anzeige meines kompletten TRaffics erhalte, aber da sind noch andere Programme beteiligt.

  • Ich weiss zwar nicht genau was du meinst.
    aber es gibt netstat -a -b da werden dann auch die Prozesse angezeigt.

  • Ich möchte einfach nur sehen, wie viel einer Datei schon ins Inet geschickt wurde.
    Das wollte ich erreichen, indem ich den Traffic meines Progs auslese und speichere. Dann lade ich die Datei auf meinen Server und lese immer wieder mal den Traffic des Programms aus.

    Jetziger Traffic - Starttraffic = Traffic verursacht durch die Datei, z.B. 3 MB

    Dann weiß ich, dass ungefähr 3 MB der Datei übertragen worden sind. Bevor sich jetzt wieder alle an den Kopf fassen: Ich weiß, dass ich nicht den reinen Dateitraffic habe. Aber es passt ungefähr und würde mir so völlig reichen.

  • für was brauchst du das denn? blende doch einfach den IE ein. Dann siehst du, die originale anzeige ;)

  • Rapidshare war nur ein Beispiel, um zu erklären, was mein Prog macht.
    Bei den Servern, auf die ich hochladen muss, gibt es keine Prozentanzeige. Da steht nur "Bitte warten, Upload läuft..." und später "Upload abgeschlossen."

    Soweit habe ich es auch im Programm drin. Also Upload starten und dann die Meldung "Upload läuft" bringen.
    Jetzt wollte ich halt wissen, ob ich irgendwie auslesen kann, wie viel schon übertragen ist, da es mich nervt, wenn ich bei teilweise über 100 MB gut ne halbe Stunde nur "Upload läuft" sehe.
    Ist ne reine Spielerei, aber irgendwie würde es mich beruhigen. ;)

    • Offizieller Beitrag

    Hi,
    vllt. hilft dir das weiter:

    Spoiler anzeigen
    [autoit]

    $strComputer = "."
    $objWMIService = ObjGet("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
    $objRefresher = ObjCreate("WbemScripting.SWbemRefresher")
    $colItems = $objRefresher.AddEnum _
    ($objWMIService, "Win32_PerfFormattedData_TCPIP_NetworkInterface").objectSet
    $objRefresher.Refresh

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To 5
    For $objItem In $colItems
    ConsoleWrite("Bytes Received Per Second: " & $objItem.BytesReceivedPersec & @CRLF)
    ConsoleWrite("Bytes Sent Per Second: " & $objItem.BytesSentPersec & @CRLF)
    ConsoleWrite("Bytes Total Per Second: " & $objItem.BytesTotalPersec & @CRLF)
    ConsoleWrite("Caption: " & $objItem.Caption & @CRLF)
    ConsoleWrite("Current Bandwidth: " & $objItem.CurrentBandwidth & @CRLF)
    ConsoleWrite("Description: " & $objItem.Description & @CRLF)
    ConsoleWrite("Name: " & $objItem.Name & @CRLF)
    ConsoleWrite("Output Queue Length: " & $objItem.OutputQueueLength & @CRLF)
    ConsoleWrite("Packets Outbound Discarded: " & $objItem.PacketsOutboundDiscarded & @CRLF)
    ConsoleWrite("Packets Outbound Errors: " & $objItem.PacketsOutboundErrors & @CRLF)
    ConsoleWrite("Packets Per Second: " & $objItem.PacketsPersec & @CRLF)
    ConsoleWrite("Packets Received Discarded: " & $objItem.PacketsReceivedDiscarded & @CRLF)
    ConsoleWrite("Packets Received Errors: " & $objItem.PacketsReceivedErrors & @CRLF)
    ConsoleWrite("Packets Received Non-Unicast Per Second: " & $objItem.PacketsReceivedNonUnicastPersec & @CRLF)
    ConsoleWrite("Packets Received Per Second: " & $objItem.PacketsReceivedPersec & @CRLF)
    ConsoleWrite("Packets Received Unicast Per Second: " & $objItem.PacketsReceivedUnicastPersec & @CRLF)
    ConsoleWrite("Packets Received Unknown: " & $objItem.PacketsReceivedUnknown & @CRLF)
    ConsoleWrite("Packets Sent Non-Unicast Per Second: " & $objItem.PacketsSentNonUnicastPersec & @CRLF)
    ConsoleWrite("Packets Sent Per Second: " & $objItem.PacketsSentPersec & @CRLF)
    ConsoleWrite("Packets Sent Unicast Per Second: " & $objItem.PacketsSentUnicastPersec & @CRLF)
    Sleep(2000)
    $objRefresher.Refresh
    Next
    Next

    [/autoit]
  • Wenn ich das jetzt richtig verstanden habe, ist das doch der komplette Traffic, oder?
    Mein Ziel war es eigentlich, den Traffic zu finden, den ein einzelnes Programm verursacht.