Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    STOR di ftp via telnet..

    sto cercando come cavolo funziona l'invio di un file via ftp

    allora:

    -apro $socket
    -leggo 220 ciao
    -scrivo USER x
    -leggo 331 user ok
    -scrivo PASS y
    -leggo 230 ma sciau

    -scrivo PASV
    -leggo 227 e mi ricavo la porta per la connessione passiva

    -creo $socket2 sulla porta di pasv

    se faccio un LIST su $socket, da $socket2 posso leggere la lista dei file (per dire, tutto funziona bene)
    ma lo stor come funziona?

    ho provato

    -scrivo STOR test.txt e leggo "150 ok"
    -leggo il file su disco e lo scrivo su $socket2
    -leggo $socket e vedo "226 file scritto con successo"

    vado a vedere dal browser, ed il file si esiste, ma è vuoto

    come mai?

  2. #2

  3. #3

  4. #4

  5. #5
    provato con ethereal o altro soft simile a guardare cosa passa?

  6. #6
    ovviamente si ma c'ho capito poco del traffico analizzato

  7. #7
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    mah a me funziona...

    in modalità passiva la procedura dovrebbe essere questa:


    client: PASV
    server: manda "227 Entering Passive Mode (a1,a2,a3,a4,p1,p2)" dove gli 'ai' sono l'IP e p1,p2 la solita porta
    client: STOR nomefile
    client: si collega al server sulla porta p1*256+p2 per la connessione dati
    server: manda sul canale comandi "150 connessione accettata..."
    client: manda il file sul canale dati
    client: chiude il canale dati
    server: manda sul canale comandi "226 file trasferito con successo"


    Come fai il test?
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  8. #8


    era un problema demente della lettura del file

    ora faccio

    Codice PHP:
    scrivi("STOR file.txt"$socket);
    leggi("150"$socket);

    $handle fopen("file.txt""r");
    $contents fread($handle"4096");
    fclose($handle);

    socket_write($socket2$contents);
    socket_close($socket2);
    leggi("226"$socket); 
    e ok il file lo invia, perchè sono 40 byte
    ma se ho un file tipo di un mega aumento il buffer o cosa?

  9. #9
    $contents = '';
    while (!feof($handle)) {
    $contents .= fread($handle, 8192);
    }

    proviamo subito

  10. #10
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    beh in genere il buffer non puo' sempre essere maggiore della lunghezza del file....

    Se il file è più grande devi leggerlo a pezzi di grandezza max pari al buf e a pezzi spedirlo sulla rete. Fai un ciclo finchè arrivi alla fine del file
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.