FileZilla - Who Logs on

  • ja, also fragt mich nicht, warum, wieso und überhaupt ... ich weiss es nicht.
    wenn ihr jedoch verbesserungsvorschläge habt, dann her damit.

    also das folgende script zeigt via spalshtexton an, welcher user mit welcher ip gerade euren filezilla server betreten hat.
    im traytip findet ihr anschließend die letzten beiden benutzer eures ftp (ich hab ne 2 user limitierung drin) ...

    dazu liest das tool die log-datei aus, sofern sich diese ändert. sollte der gleiche user wieder zugreifen, wird kein spashtext angezeigt, kommt ein neuer user, wird euch dies mitgeteilt.

    glaube sonst gibts nix zu sagen ... über ALT + F5 kann das script gestoppt werden (oder systray)

    wer es braucht =)

    Spoiler anzeigen
    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_icon=Icons\FZ.ico
    #AutoIt3Wrapper_Allow_Decompile=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <File.au3>
    #include <array.au3>
    #Include <Date.au3>

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

    Opt("OnExitFunc","OnAutoItExit")
    HotKeySet("!{F5}", "OnAutoItExit")

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

    $sFilePath = "C:\Programme\FileZilla Server\Logs\FileZilla Server.log"
    $sFilePath2 = "C:\Programme\FileZilla Server\Logs\FileZilla Server.log.bak"
    $newtime = 0
    Global $olduser
    Global $lines_A, $line

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

    $gettime = FileGetTime ($sFilePath, 0, 1)

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

    While 1
    _FileReadToArray($sFilePath, $lines_A)
    For $i = UBound($lines_A) - 1 To 1 Step - 1
    If Not StringRegExp($lines_A[$i], '230 Logged on', 0) Then
    _ArrayDelete($lines_A, $i)
    Else
    $left = StringTrimLeft($lines_A[$i], 31)
    $right = StringTrimRight($left, 15)
    _ArrayAdd($lines_A, $right)
    _ArrayDelete($lines_A, $i)
    EndIf
    Next
    _FileWriteFromArray($sFilePath2, $lines_A, 1)
    _FileReadToArray($sFilePath2, $lines_A)
    _FileWriteFromArray($sFilePath2, _ArrayUnique($lines_A), 1)
    If @error Then
    Else
    $user = FileReadLine($sFilePath2, 1)
    If $user = $olduser Then
    Else
    $olduser = $user
    SplashTextOn("", $user & " " & _NowTime(5) , 350, 30, 671, 705, 1 + 32, "Lucida Console", 10)
    Sleep(3000)
    SplashOff( )
    TraySetToolTip($user & @CRLF & FileReadLine($sFilePath2, 2))
    EndIf
    EndIf
    Do
    $gettime = FileGetTime ($sFilePath, 0, 1)
    Sleep(1000)
    $newtime = FileGetTime ($sFilePath, 0, 1)
    Until $gettime <> $newtime
    WEnd

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

    Func _ArrayUnique(ByRef $aArray, $vDelim = '', $iBase = 1, $iUnique = 1)
    If $vDelim = '' Then $vDelim = Chr(01)
    Local $sHold
    For $iCC = $iBase To UBound($aArray) - 1
    If Not StringInStr($vDelim & $sHold, $vDelim & $aArray[$iCC] & $vDelim, $iUnique) Then _
    $sHold &= $aArray[$iCC] & $vDelim
    Next
    Return StringSplit(StringTrimRight($sHold, StringLen($vDelim)), $vDelim)
    EndFunc ;==>_ArrayUnique

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

    Func OnAutoItExit()
    FileDelete($sFilePath2)
    Exit
    EndFunc

    [/autoit]