如何使用ftp的list命令?

时间:2021-09-17 03:42:22
这个问题本不该在这问的,但是我是正在写VC程序时遇到了错误,所以在这问了,请包涵。
那就是,当我登录到一个ftp server,如何使用list?
因为一个奇怪的问题是我在dos下登录ftp server,使用ls命令可以列出文件和目录,但是使用quote LIST却显示can't open data ....,why?而当我用quote pwd,quote pasv,quote port时命令都成功,list为什么不可以,请指教。用cuteFTP 连接ftp server时一切正常。请您尽可能的解决一下我在dos下遇到的问题。有哪位使用quote成功提交过LIST命令的大侠提供些经验。
谢!

8 个解决方案

#1


help?

#2


你要先用port命令

port a,b,c,d,e,f

其中a.b.c.d为自己的ip
(e<<8)+f 为本地的端口, 该端口用bind实现

还有一个办法是先送
pasv
响应
port a,b,c,d,e,f
是远程服务器的ip + port
然后 connect,

最后执行list

在连接的fd中得到所要的数据

#3


是最后connect吗?那怎么做呀
我看cuteftp的命令顺序为USER PASS、TYPE I 、REST 100、REST 0、PWD 、PORT XXXXXXXXXX 、TYPE A、 LIST,它应该是最开始connect了吧
您说最后connect,那前面怎样送pasv port等命令呀
能否请您给我一个例子或详细说说,谢!

#4


还有您说的那个fd是什么?

#5


在dos窗口下,我使用ftp -d SERVER 登录一个FTP SERVER,其过程如下:

D:\ftp>ftp -d wg
Connected to wg.
220 wg Microsoft FTP Service (Version 5.0).
User (wg:(none)): anonymous
---> USER anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
---> PASS wg@sss
230-Hello,This is Wg's FTP Server
230 Anonymous user logged in.
ftp> ls
---> PORT 127,0,0,1,11,196
200 PORT command successful.
---> NLST
150 Opening ASCII mode data connection for file list.
jy.zip
wg
wg2
wgnote.txt
226 Transfer complete.
ftp: 29 bytes received in 0.01Seconds 2.90Kbytes/sec.

到这里,可以看出交互命令ls对应的实际上是FTP的命令--->port XX,XX,XX,XX,XX,XX,XX和--->NLST,于是我在命令符上使用这两个命令来模拟ls
ftp> quote pasv
---> pasv
227 Entering Passive Mode (127,0,0,1,11,197).
ftp> quote port 127,0,0,1,11,197
---> port 127,0,0,1,11,197
200 PORT command successful.
ftp> quote NLST
---> NLST
150 Opening ASCII mode data connection for file list.
ftp>quote pwd
425 can't open data connection.
257 "/" is current directory.
ftp>
竟然显示说can't open data connecntion.why?

#6


请到http://www.etechbase.net/advsearch.php,将你这个问题输入到检索框,然后选择准确匹配查询,应该可以帮助你解决这个问题的。

#7


您是说FTP命令大全这个问题吗?
好象不行,但很感谢您给我提供了一个如此好的网站。

#8


OK.jadedrip给了我很大的启发,多谢二位了。

#1


help?

#2


你要先用port命令

port a,b,c,d,e,f

其中a.b.c.d为自己的ip
(e<<8)+f 为本地的端口, 该端口用bind实现

还有一个办法是先送
pasv
响应
port a,b,c,d,e,f
是远程服务器的ip + port
然后 connect,

最后执行list

在连接的fd中得到所要的数据

#3


是最后connect吗?那怎么做呀
我看cuteftp的命令顺序为USER PASS、TYPE I 、REST 100、REST 0、PWD 、PORT XXXXXXXXXX 、TYPE A、 LIST,它应该是最开始connect了吧
您说最后connect,那前面怎样送pasv port等命令呀
能否请您给我一个例子或详细说说,谢!

#4


还有您说的那个fd是什么?

#5


在dos窗口下,我使用ftp -d SERVER 登录一个FTP SERVER,其过程如下:

D:\ftp>ftp -d wg
Connected to wg.
220 wg Microsoft FTP Service (Version 5.0).
User (wg:(none)): anonymous
---> USER anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
---> PASS wg@sss
230-Hello,This is Wg's FTP Server
230 Anonymous user logged in.
ftp> ls
---> PORT 127,0,0,1,11,196
200 PORT command successful.
---> NLST
150 Opening ASCII mode data connection for file list.
jy.zip
wg
wg2
wgnote.txt
226 Transfer complete.
ftp: 29 bytes received in 0.01Seconds 2.90Kbytes/sec.

到这里,可以看出交互命令ls对应的实际上是FTP的命令--->port XX,XX,XX,XX,XX,XX,XX和--->NLST,于是我在命令符上使用这两个命令来模拟ls
ftp> quote pasv
---> pasv
227 Entering Passive Mode (127,0,0,1,11,197).
ftp> quote port 127,0,0,1,11,197
---> port 127,0,0,1,11,197
200 PORT command successful.
ftp> quote NLST
---> NLST
150 Opening ASCII mode data connection for file list.
ftp>quote pwd
425 can't open data connection.
257 "/" is current directory.
ftp>
竟然显示说can't open data connecntion.why?

#6


请到http://www.etechbase.net/advsearch.php,将你这个问题输入到检索框,然后选择准确匹配查询,应该可以帮助你解决这个问题的。

#7


您是说FTP命令大全这个问题吗?
好象不行,但很感谢您给我提供了一个如此好的网站。

#8


OK.jadedrip给了我很大的启发,多谢二位了。