Archiv verlassen und diese Seite im Standarddesign anzeigen : Ftp upload
hab n doofes problem mit ftp upload ich blick das ned ganz leider....
wie das hochladen funzt
Ich will jedesmal wenn mein mirc startet das er sich auf meinem webspace einloggt und die index.html löscht und neu von festplatte hochlädt.
(Die generier ich vorher mit mirc, mit weiterleitung auf localhost)
port macht mir die probs.
Vielleicht mach ich auch einfach alles falsch und es geht anders viel einfacher waere fuer hilfe echt dankbar.
Script:
alias ftp {
sockclose ftp
sockopen ftp rain.prohosting.com 21
}
on *:sockread:ftp:{
sockread %temp
echo -at %temp
if (220 isin %temp) {
sockwrite -nt ftp USER alamare
}
if (331 isin %temp) {
sockwrite -nt ftp PASS <blabla>
}
if (230 isin %temp) {
sockwrite -nt ftp DELE index.html
sockwrite -nt ftp PORT $replace($ip,$chr(46),$chr(44)) $+ ,21,21
}
if (200 isin %temp) {
sockwrite -nt ftp STOR index.html
}
}
on *:sockread:bla:{
var %temp
sockread %temp
echo -a %temp
}
Felix Kaiser
18.04.2002, 20:33
Darüber hab ich schonmal mit dir diskutiert, die letzten beiden Ziffern (je 8 Bit) geben je das niederwertige und dann das höherwertige Byte des Ports an. 21,21 ergibt 21 + 256 * 21 = 5397 als Port. Je nach dem für was der PORT Befehl gebraucht wird, muss das nun anders gemacht werden. Bin mir auch jetzt nicht sicher wie rum. Aber in dem Beispiel weißt, soweit ich weiß, der FTP Client den Server an, nen Serversocket auf Port 5397 für Kommunikation bereithalten, aber keine Ahnung wie genau und GENAU das MUSS in einer RFC beschrieben sein.
http://www.rfc-editor.org/rfc/rfc959.txt
Les dir doch nochmal dort den Abschnitt über Passive Datenübertragung durch.
:O
das hab ich in meinem client...
on sockread...
...
sockread -f %ftp.control
...
if (227* iswm %ftp.control) {
set %ftp.dataport $calc($gettok(%ftp.control,5,44)*256+$remove($gettok(%ftp.control,6,44),$chr(41),$chr(46)))
...
und die ersten 4 stellen sind die IP
good luck
eViL_oNe
26.04.2002, 15:08
sorry ich raff das net ganz;
alias ftptest {
sockclose ftp
sockopen ftp ftp.meinftp.de 21
unset %ftp_once
}
on *:sockread:ftp:{
sockread %temp
echo -a %temp
if (227* iswm %temp) && (%ftp_once != 2) {
sockwrite -nt ftp TYPE A
sockwrite -nt ftp STOR test.html
set %ftp_once 2
}
if (220* iswm %temp) {
sockwrite -nt ftp USER user
}
if (331* iswm %temp) {
sockwrite -nt ftp PASS pass
}
if (230* iswm %temp) && (%ftp_once != 1) {
set %ftp_once 1
sockwrite -nt ftp PWD
sockwrite -nt ftp CWD eindir
sockwrite -nt ftp DELE test.html
sockwrite -nt ftp PASV
}
}
ich kriege daraufhin die folgende Ausgabe (den login teil habe ich mal weggelassen):
257 "/" is current directory.
250 CWD command successful.
250 DELE command successful.
227 Entering Passive Mode (217,115,142,81,17,55).
200 Type set to A.
Da bleibt er hängen - auf dem ftp entsteht eine leere datei test.html.....
Das ganze verhält sich ziemlich genauso auf meinem eigenen FTP Server (G6 FTP) - als statusmeldung kriege ich noch access allowed und dann nix mehr :(
dann schau doch mal ob du der port den du öffnen möchtest zum server auch geöffnet bleibt..
und schau dir per echo mal die daten an die da durch gehen...
bei PASV sagst du dem server welchen port er auf listen stellen soll
bei PORT sagt dir der server wo du horchen sollst...
PASV (217,115,142,81,17,55). wäre hier zB
auf der IP 217.115.142.81 ist der port 4407 auf listen gestellt...
check? 8)
eViL_oNe
26.04.2002, 16:34
lol ich idiot habe es ganz vergessen ein sockopen server dataport zu machen - jetzt geht auch alles :o
Hi
Wenn ich ein File uploade kriege ich immer zwei Fehlermeldungen:
426 Connection closed; Transfer Aborted.
-------------------------
451 Failed: Connect: No IP Address Specified.
-------------------------
In der rfc steht ja zu fehler 426 das ich wenigstens ein 226 kriegen müsste aber selbst das bleibt aus. Ich versteh auch net wieso er den Port closed.
In dem file is aber trotzdem alles drin außer ( mein zweites Prob ) die Klammer ( { ). Verstehe ich nicht ganz :mauer: .
Und dann hab ich noch ne frage ob/wie ich zwischen jeder Zeile ne Pause machen kann. Irgendwie sind die Dateien sonst unvollständig. Noch kurz mein Source
elseif ($1 == upload) {
set %path $3-
set %ftp.file $2
sockwrite -n z.ftp PASV
sockwrite -n z.ftp TYPE A
sockwrite -n z.ftp STOR $2
.timerup 1 2 /upload %path %ftp.file
}
alias upload {
if ($sock(z.ftp.data).status == active) {
var %i = 1
while (%i <= $lines($1 $+ $2)) {
sockwrite -n z.ftp.data $read($1 $+ $2,%i)
inc %i
}
unset %path
unset %ftp.file
sockwrite -n z.ftp LIST
}
}
Hoffe ich hab mich nicht ganz so unglücklich ausgedrückt.
Danke schon mal für eine Antwort
gruß
ich habe ka was du meinst...
kann sein dass du deine ip binden musst damit der ftpd den socket akzeptiert...
:)
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.