Netztraffic ermitteln

  • Guten Morgen,
    Ich würde gern ein kleines Prögrämmchen schreiben, welches mir den Netztraffic (LAN, WLAN, DFÜ) anzeigt.
    Hintergrund: Ich wüßte gern, wann Daten ins und vom Inet übertragen werden, am Besten auch noch von welchem Prog.
    DSL-Manager macht das zwar, funzt aber unter win7-64 nicht richtig und ist mir auch zu unflrexibel.

    Hat jemand ne Idee, wie man die benötigten Daten abgreifen kann? SuFu brachte nichts Verwertbares. :-((

    LG
    Hexer

  • Hi!

    Du könntest das ganze mit Netstat probieren.
    Dazu hat hier schon jemand im Forum Fragen gestellt.
    Ich finde leider den Post nicht mehr.
    Aber wie gesagt gib mal in der Kommandline netstat /? ein.
    Ich nehme an das Windows 7 diesen Befehl zur Verfügung stellt.

    LG
    Concara

    If not :?: then ?( else :thumbup:

  • Hi Concara,

    ja an netstat hatte ich auch schon gedacht, aber das bringt mir auch nicht die benötigten "kbit/sek".

    Es gibt auch 'nen "NetSpeedMonitor" der zeigt mir das Ganze im Systray als Zahlen an. Könnte man vielleicht irgendwie auslesen und weiterverarbeiten...

    Das ist aber eigentlich nicht das was ich suche. Mir geht es darum, irgendwoher die Up- und Download- geschwindigkeiten zu erhalten, um sie dann als wenige Pixel breiten Balken zB. unter der Taskleiste darzustellen. Nimmt keinen Platz weg, aber man sieht sofort, was sich in Bezug auf Traffic tut. Wie schon geschrieben, ähnlich wie der DSL-Manager...

    LG
    Hexer

  • Ich hätte jetzt SNMP gesagt da gibt es die Möglichkeiten. Aber ich kenne das nur von LAN-Schnittstellen.
    Bei mir läuft auf der Fritzbox nen "rrdstat" und liest die Sachen aus. Das ganze basiert auf der "Round Robin Database".

    MfG
    Der_Doc

  • gibts in AutoIt, schau mal hier
    /edit/ uups, falschen Thread erwischt...

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (15. November 2009 um 12:20)

    • Offizieller Beitrag

    Geht auch per WMI:

    Spoiler anzeigen
    [autoit]


    ; Generated by AutoIt Scriptomatic

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

    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = 'localhost'
    $NetworkAdapter = 'Marvell Yukon 88E8053 PCI-E Gigabit Ethernet Controller' ; hier den Namen des Netzwerkadapters eintragen

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

    $Output=""
    $Output &= 'Computer: ' & $strComputer & @CRLF
    $Output &= '==========================================' & @CRLF
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\')
    While True
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_PerfFormattedData_Tcpip_NetworkInterface', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    If IsObj($colItems) Then
    For $objItem In $colItems
    If $objItem.Name = $NetworkAdapter Then
    $Output = 'BytesReceivedPersec: ' & $objItem.BytesReceivedPersec & @CRLF
    $Output &= 'BytesSentPersec: ' & $objItem.BytesSentPersec & @CRLF
    $Output &= 'BytesTotalPersec: ' & $objItem.BytesTotalPersec & @CRLF
    ToolTip($Output, @DesktopWidth / 2 - 200, 20, 'Network-Traffic')
    EndIf
    Next
    Else
    $Output &= 'No WMI Objects Found for class: ' & 'Win32_PerfFormattedData_Tcpip_NetworkInterface'
    Endif
    Sleep(50)
    WEnd

    [/autoit]
  • 'n Abend und Dank erst mal an alle.
    Das Script von Oscar hab ich mal kurz probiert, funzt aber noch nicht. Muß mich da wohl noch etwas einarbeiten.
    Die nächste Woche muß ich erst mal pausieren, danach melde ich mich wieder.

    LG
    Herxer

  • @hexer,
    probier das mal, Oscars Script mit Auswahl der Adapter in einer Combobox. Funktioniert bei mir einwandfrei...

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    $adapter = ""
    Global $wbemFlagReturnImmediately = 0x10
    Global $wbemFlagForwardOnly = 0x20
    Global $colItems = ""
    $strComputer = 'localhost'
    $Output = ""
    $Output &= 'Computer: ' & $strComputer & @CRLF
    $Output &= '==========================================' & @CRLF

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

    Global $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\')
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_PerfFormattedData_Tcpip_NetworkInterface', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $colItems = ' & $colItems & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    If IsObj($colItems) Then
    For $objItem In $colItems
    $adapter &= $objItem.Name & "|"
    Next
    Else
    $Output &= 'No WMI Objects Found for class: ' & 'Win32_PerfFormattedData_Tcpip_NetworkInterface'
    Exit
    EndIf

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

    GUICreate('Netzwerktraffic', 800, 200)
    GUICtrlCreateLabel("Adapter auswählen:", 10, 10, 120, 20)
    $netzwerkadapter = GUICtrlCreateCombo("", 120, 10, 600, 20)
    GUICtrlSetData(-1, $adapter, StringLeft($adapter, StringInStr($adapter, "|") - 1))
    GUISetState()

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

    Do
    _traffic(GUICtrlRead($netzwerkadapter))
    Sleep(50)
    Until GUIGetMsg() = -3

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

    Func _traffic($NetworkAdapter)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_PerfFormattedData_Tcpip_NetworkInterface', 'WQL', $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
    For $objItem In $colItems
    If $objItem.Name = $NetworkAdapter Then
    $Output = 'BytesReceivedPersec: ' & $objItem.BytesReceivedPersec & @CRLF
    $Output &= 'BytesSentPersec: ' & $objItem.BytesSentPersec & @CRLF
    $Output &= 'BytesTotalPersec: ' & $objItem.BytesTotalPersec & @CRLF
    ToolTip($Output, @DesktopWidth / 2 - 200, 20, 'Network-Traffic')
    EndIf
    Next
    EndFunc ;==>_traffic

    [/autoit]