ugrás a tartalomhoz

FXP protokoll leírás PHP alapú FXP képes FTP kliens fejlesztéséhez

joed · 2011. Május. 3. (K), 11.41
Sziasztok!

A probléma a következő: PHP-ben kellene FXP képes FTP klienst fejlesztenem, de sehol nem találtam pontos dokumentációt az FXP-vel bővített FTP protokollról. A konkrét működés valamennyire tiszta, azonban a parancsokról, paraméterekről, azok sorrendjéről, azaz magáról a protokollról nem találtam semmit.

Tehát a kérdésem az lenne, hogy van-e ismeretetek esetleg anyagotok az FXP protokollal kapcsolatban, ami alapján le lehet fejleszteni egy klienst?

A segítséget nagyon köszönöm és a projekt forráskódjával tudom meghálálni :)

üdv,

joey
 
1

Milyen értelemben?

vbence · 2011. Május. 3. (K), 12.50
Milyen értelemben használod itt az FXP-t? A wikipedia cikke szerint: http://en.wikipedia.org/wiki/File_eXchange_Protocol
... két ftp szerver közötti átvitel a kliens gépének érintése nélkül.

Ha ismered az FTP-t tisztában vagy a PASV és PORT parancsokkal. Az egyik FTP szereren kész egy PASV portot:
---> PASV
227 Entering Passive Mode (192,168,150,90,195,149).
A másik szervert pedig az így kapott portra csatolod a PORT parancsal:
---> PORT 192,168,150,90,195,149
200 PORT command successful.
Majd az egyik szerveren RETR a másikon STOR parancsot kiadva megtörténik az átvitel. Ezt le is írja a Wikipédia.

A probléma csak annyi, hogy a valódi szerverek 99%-a nem támogatja ezt a metódust biztonsági okokból (PORT paranccsal csak a kapcsolat IP címére kérhetsz csatlakozást).

Amúgy meg lehetne oldani, mondjuk spam kiküldését egy FTP szerver segítségével (rá PORTolsz egy 25-ös SMTP szerverre és RETR-el küldöd neki a fájlban tárolt FTP ranacsokat). De akár HTTP vagy FTP szererek is vezérelhetők lennének ezzel a módszerrel.
3

AUTH TLS

joed · 2011. Május. 3. (K), 14.29
És tényleg ilyen egyszerű :) Teljesen belebonyolódtam az AUTH TLS/CPSV/SSCN mikéntjébe (ezt is implementálni kell), közben a lényeg ott volt az orrom előtt. Köszi!
2

Wikipedia

Poetro · 2011. Május. 3. (K), 13.16
A Wikipedia leírása szerint, ez egy protokoll az FTP illetve SSL felett. Amennyiben FTP felett van, akkor hagyományos FTP parancsokat kell kiadni, valamint pár egyedi FTP parancsot. Azaz kapcsolódsz mindkét szerverhez, majd passzív módba lépsz. Az erre kapott válaszból kiszeded a PORT információkat, majd ezt használod a másik szerveren is.
Az RCF 959 is leírja ugyanezt a folyamatot. Lásd 5.2 Connections.

PHP dokumentációban (ftp_raw) is van példa a kapcsolat kiépítésére.
4

Annak ellenére

vbence · 2011. Május. 3. (K), 15.43
Although FXP may be classed as its own "protocol", it is in fact merely an extension of FTP

Annak ellenére, hogy az FXP kategorizálható saját "protokolként", valójában csupán az FTP kiterjesztése.

Sőt.. én még kiterjesztésnek se nevezném, csak buta buzzwordnek, mint az AJAX. A szükséges funkcionalitás a kezdetektől (rfc765) rendelkezésre áll, csak egy praktikáról van szó, aminek valaki valahol nevet adott (pl. hogy ráírhason a programja dobozára egy hárombetűst ami a konkurencia dobozán nincs rajta).