alle udp/tcp verbindungen eines prozesses... nur wie ?

  • das script aus diesem topic :
    http://www.autoitscript.com/forum/topic/10…ections-viewer/
    .... macht zwar alles von dem was ich brauche, es ist allerdings für mich "etwas" zu komplex und mit api-aufrufen gespickt ...
    ich hoffe mir kann jemand helfen beim auseinanderpflücken dessen oder hat eine einfache, andere lösung dafür.

    so sollte mein array aussehen was ich mir wünsch
    array[0][0] =
    ie.exe <(prozess-name)
    hat folgende offene verbindungen:
    array[0][0] = 123.222.111.1 <(ip)
    array[0][1] = 29222 <(port)
    array[0][2] = udp <(udp/tcp)
    array[1][0] = 23.22.22.2
    array[1][1] = 80
    array[1][2] = tcp
    ... usw

    LG & danke im voraus :)

    4 Mal editiert, zuletzt von WhiteLion (9. Oktober 2011 um 22:11)

  • Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    $aProc = ProcessGetNetStats('firefox.exe')
    _ArrayDisplay($aProc)

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

    Func ProcessGetNetStats($sProcess)
    Local $iProcessID, $aConnections, $aReturn
    Local $iPID, $bStdOut, $sCmdRead

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

    $iProcessID = ProcessExists($sProcess)
    If Not $iProcessID Then Return SetError(1, 0, 0)

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

    $iPID = Run(@ComSpec & ' /c netstat -ano', @SystemDir, @SW_HIDE, 2 + 4)
    Do
    $bStdOut = StdoutRead($iPID, 0, 1)
    If @error Then ExitLoop
    $sCmdRead &= BinaryToString($bStdOut, 4)
    Until False
    StdioClose($iPID)

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

    $aConnections = StringRegExp($sCmdRead, '' _
    & '(?m)' _ ; ^ and $ match at line breaks
    & '^ +([^ ]+)' _ ; find protocol that is being used
    & ' +[^ ]+' _ ; skip 'local adress'
    & ' +([^ ]+):([^ ]+)' _ ; ip and port (numeric or *) from remote address
    & ' +(?:[^ ]+ +)?' _ ; skip 'status'
    & '\b' & $iProcessID & '', 3) ; and just find those with the chosen pid.
    If @error Then Return SetError(2, @error, 0)

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

    Dim $aReturn[UBound($aConnections) / 3][3]
    For $i = 0 To UBound($aConnections) - 1 Step 3
    $aReturn[$i / 3][0] = $aConnections[$i + 1]
    $aReturn[$i / 3][1] = $aConnections[$i + 2]
    $aReturn[$i / 3][2] = $aConnections[$i]
    Next

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

    Return $aReturn
    EndFunc ;==>ProcessGetNetStats

    [/autoit]
  • 1000 dank!!! du hast mich mal wieder gerettet ... und ich hatte schon einen horror mich durch dieses script schlagen zu müssen .... wusste nicht das netstat auch prozessbezogen arbeiten kann....

    hast was gut bei mir !!