OK chaps, your combined comments are great clues. If vanilla old ftp.exe is an inferior client that misbehaves and doesn't do PASV correctly, then it would explain my frustration and lack of progress. I was betting on the wrong horse all along.
I'm going to knock-up a little C# client that uses WebClient and PASV mode and see if I can get files. If this works then I can curse ftp.exe to Hades and pass my code to the C++ guy to follow the same pattern. I'll let you know fi I learn anything useful. Greg K On 17 October 2013 17:12, David Connors <[email protected]> wrote: > Command prompt ftp doesn't do pasv. You need to use client that does or > get a stateful firewall or use a proxy > On 17/10/2013 3:51 PM, "Greg Keogh" <[email protected]> wrote: > >> David, FileZilla works perfectly by default and lists the files and I can >> see the following in the trace (pasted below). What it's doing seems to >> make sense, but if I try similar requests from the command prompt >> (including the PASV) I still get "501 Server cannot accept argument" when I >> attempt to list or get files. >> >> So although I can now see Windows Explorer and FileZilla all listing >> files on the FTP server, I can't do the same from the command prompt. The >> point of all this simulation from the command prompt is that if I get it >> working I can then tell the C++ programmer exactly what steps I performed >> in the hope he can do the same from his code and overcome our problem. >> >> Greg K >> >> ===================== >> Status: Resolving address of ftp.#######.com >> Status: Connecting to ###.50.142.77:21... >> Status: Connection established, waiting for welcome message... >> Response: 220 Microsoft FTP Service >> Command: USER ###### >> Response: 331 Password required for ######. >> Command: PASS ******** >> Response: 230-Welcome to the #######.com FTP service on the dedicated >> ##### server. >> Response: 230 User logged in. >> Command: SYST >> Response: 215 Windows_NT >> Command: FEAT >> Response: 211-Extended features supported: >> Response: LANG EN* >> Response: UTF8 >> Response: AUTH TLS;TLS-C;SSL;TLS-P; >> Response: PBSZ >> Response: PROT C;P; >> Response: CCC >> Response: HOST >> Response: SIZE >> Response: MDTM >> Response: REST STREAM >> Response: 211 END >> Command: OPTS UTF8 ON >> Response: 200 OPTS UTF8 command successful - UTF8 encoding now ON. >> Status: Connected >> Status: Retrieving directory listing... >> Command: PWD >> Response: 257 "/" is current directory. >> Command: TYPE I >> Response: 200 Type set to I. >> Command: PASV >> Response: 227 Entering Passive Mode (###,50,142,77,203,156). >> Command: LIST >> Response: 150 Opening BINARY mode data connection. >> Response: 226 Transfer complete. >> Status: Calculating timezone offset of server... >> Command: MDTM 23456781.rlf >> Response: 213 20111220002502 >> Status: Timezone offsets: Server: -25200 seconds. Local: 0 seconds. >> Difference: 25200 seconds. >> Status: Directory listing successful >> >> >> On 17 October 2013 15:01, David Connors <[email protected]> wrote: >> >>> On Thu, Oct 17, 2013 at 1:47 PM, Greg Keogh <[email protected]> wrote: >>> >>>> Chaps, FileZilla or Wireshark! The former I haven't used and I won't >>>> learn anything if works or nor, unless it has some tracing facility. >>>> >>> >>> You will learn exactly what the problem is. >>> >>> If it works with FileZilla using passive FTP then the problem is your >>> firewall. Windows command-line FTP is active by default. >>> >>> With active FTP the server opens the data connection to you which is >>> blocked unless you have a firewall that does stateful inspection. >>> >>> WIth passive FTP the client opens the data connection and that will work >>> by default in most NAT/firewalls even without stateful inspection. >>> >>> David. >>> >> >>
