Also ein FTP Upload Script habe ich dir schonmal gemacht. Was du jedoch fuer eine Datei hoch laden moechtest, die natuerlich dann auch vom Bot erstellt wird musst du hier noch etwas genauer beschreiben.
Code:
Dim FtpSocket, RetryCount, Monitor
'IP Adresse oder Hostname des FTP Servers
Ftphost = "127.0.0.1"
'Ftp Port, im normalfall ist es 21
FtpPort = "21"
'Uername zum anmelden an den FTP
FtpUser = "Anonymous"
'Password fuer den FTP
FtpPass = "someone@some.net"
'Der Remotepfad in dem die hoch geladene Datei gespeichert werden soll (Absoluter Pfad)
FtpPath = "~/public_html/stats/"
'Die Datei die hoch geladen werden soll (Relativer Pfad)
FtpFile = "stats.html"
'Dein Nickname, bei Problemen bekommst du eine note
FtpAdmin = Param(ReadInistring("Identification", "Admin", "", "AnGeL.ini"), 1)
'Maximale anzahl der Verbindungsversuche, wird dieses limit erreicht wird nicht weiter versucht zu verbinden und du bekommst eine note
MaxRetryCount = 3
'Soll auf der Partyline eine Ausgabe stattfinden wenn versucht wird die datei hochzuladen? (True/False)
Monitor=False
' Interval für den FTP Upload in Minuten
UploadInterval = 60 * 60 'eine stunde
'################################
'## NO CHANGES UNDER THIS LINE ##
'################################
Sub init()
Script "FTP Upload Script v1.1 by Phantom"
If FtpHost <> "" And FtpPort <> "" And FtpUser <> "" And FtpPAss <> "" And FtpPath <> "" And FtpFile <> "" Then
SpreadFlagMessage 0, "+n", "3*** FTP Upload Script v1.1 by Phantom loaded"
Else
DontLoadScript "Bitte stellen Sie das Script ein!"
End If
RetryCount = 0
ConnectToServer
End Sub
Sub ConnectToServer()
getSock = SockConnect(FtpHost, FtpPort, "Ftp_Session")
If Monitor Then
SpreadFlagMessage 0, "+n", "3*** [FTP] Connecting to Server..."
End If
End Sub
Sub Ftp_Session(Socknum, State, Reply)
Select Case State
Case SE_ConnectionFailed
If RetryCount < MaxRetryCount Then
RetryCount = RetryCount + 1
SpreadFlagMessage 0, "+n", "3*** [FTP] Connection failed!"
SpreadFlagMessage 0, "+n", "3*** [FTP] Delaying for 20 seconds before reconnect attempt " & RetryCount & " of " & MaxRetryCount
TimedCommand "ConnectToServer", 20
Else
ExecuteCommand 0, ".note " & FtpAdmin & " Es konnte keine Verbindung zum FTP Server hergestellt werden. Möglicherweise liegt ein fehler beim FTP vor.",,"FTP_Upload"
SpreadFlagMessage 0, "+n", "3*** [FTP] Connection failed!"
SpreadFlagMessage 0, "+n", "3*** [FTP] Giving up!"
RetryCount = 0
End If
Case SE_Connected
If Monitor Then
SpreadFlagMessage 0, "+n", "3*** [FTP] Connection established"
End If
RetryCount = 0
FtpSocket = SockNum
SockWrite SockNum, "USER " & FtpUser & vbcrlf
Case SE_Read
tmp = split(reply, vbcrlf)
for x = LBound(tmp) to UBound(tmp)
If Trim(tmp(x)) <> "" Then
Select Case Param(tmp(x), 1)
Case "226"
If Monitor Then
SpreadFlagMessage 0, "+n", "3*** [FTP] Tranfer complete."
End IF
SockWrite SockNum, "quit" & vbcrlf
TimedCommand "ConnectToServer", UploadInterval
Case "227"
pasvp = Split(Mid(Param(tmp(x), 5), 2, Len(Param(tmp(x), 5)) - 3), ",")
pasvport = (pasvp(4) * 256) + pasvp(5)
If Monitor Then
SpreadFlagMessage 0, "+n", "3*** [FTP] Entering Passive Mode"
End If
NewSock = SockConnect(FtpHost, pasvport, "Pasv_Session")
Case "230"
SockWrite SockNum, "CWD " & FtpPath & vbcrlf
SockWrite SockNum, "PASV" & vbcrlf
Case "331"
SockWrite SockNum, "PASS " & FtpPass & vbcrlf
End Select
End If
next
Case SE_Closed
If Monitor Then
SpreadFlagMessage 0, "+n", "3*** [FTP] Connection closed."
End If
End Select
End Sub
Sub Pasv_Session(Socknum, State, Reply)
Select Case State
Case SE_Connected
PasvSocket = SockNum
If Monitor Then
SpreadFlagMessage 0, "+n", "3*** [FTP] Uploading file..."
End If
SockWrite FtpSocket, "STOR " & FtpFile & vbcrlf
SockWrite SockNum, ReadFile(FtpFile) & vbcrlf
SockClose PasvSocket
Case SE_Closed
SockClose FtpSocket
End Select
End Sub
Function ReadFile(Filename)
Dim final, addline
fnum = FileOpen(Filename, FA_Read)
while Not FileEOF(fnum)
addline = FileReadln(fnum)
final = final & addline & vbcrlf
wend
FileClose fnum
ReadFile = final
End Function