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
#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>
Opt("OnExitFunc","OnAutoItExit")
HotKeySet("!{F5}", "OnAutoItExit")
$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
$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
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
Func OnAutoItExit()
FileDelete($sFilePath2)
Exit
EndFunc