views:

14

answers:

1

Specifically for Twisted, I would like to be able to determine whether the server I am connected to supports active or passive mode. http://twistedmatrix.com/documents/10.1.0/api/twisted.protocols.ftp.FTPClient.html

If somebody could explain or give example in FTP protocol how you can determine whether the server supports active or passive modes.

Thanks

+1  A: 

Passive mode is enabled by issuing the PASV command to the server. If it responds with an error code (should be 500 Unknown command) upon issuing that command, then you know that it is not supported. If it responds with a 227 Entering Passive Mode, then you know that passive is supported.

Example using command line telnet and FTP commands:

% telnet ftp.mozilla.org 21
Trying 63.245.208.138...
Connected to dm-ftp01.mozilla.org.
Escape character is '^]'.
220-  [greeting omitted]
USER anonymous
331 Please specify the password.
PASS jathanism@
230-  [banner omitted]
230 Login successful.

Good command (passive mode is supported):

PASV
227 Entering Passive Mode (63,245,208,138,202,53)

Bad command (500 error thrown):

FART
500 Unknown command.
jathanism