FTP 协议命令

如果想自己编写一个FTP客户端程序,首先得搞清楚FTP协议中的这些命令和用法。

FTP COMMANDS

The following are the FTP commands:

USER <SP> <username> <CRLF>       登录的用户名
            PASS <SP> <password> <CRLF>       密码
            ACCT <SP> <account-information> <CRLF>
            CWD  <SP> <pathname> <CRLF>       改变当前目录
            CDUP <CRLF>                       返回上级目录
            SMNT <SP> <pathname> <CRLF>
            QUIT <CRLF>                       退出
            REIN <CRLF>                       重新登录
            PORT <SP> <host-port> <CRLF>
            PASV <CRLF>                       获取数据传输端口
            TYPE <SP> <type-code> <CRLF>      设置数据交换的类型{A(SCII),E(BCDIC),I(mage),L(ocal byte size)}
            STRU <SP> <structure-code> <CRLF>
            MODE <SP> <mode-code> <CRLF>
            RETR <SP> <pathname> <CRLF>
            STOR <SP> <pathname> <CRLF>       用覆盖方式上传一个文件到服务器
            STOU <CRLF>
            APPE <SP> <pathname> <CRLF>       用追加方式上传一个文件到服务器
            ALLO <SP> <decimal-integer>
                [<SP> R <SP> <decimal-integer>] <CRLF>
            REST <SP> <marker> <CRLF>         指定重新下在的字节数
            RNFR <SP> <pathname> <CRLF>       指定需要改名的原文件
            RNTO <SP> <pathname> <CRLF>       指定需要改名的新文件名
            ABOR <CRLF>                       取消前一指令
            DELE <SP> <pathname> <CRLF>       在服务器上删除指定文件
            RMD  <SP> <pathname> <CRLF>       在服务器上删除指定目录
            MKD  <SP> <pathname> <CRLF>       在服务器上创建目录      
            PWD  <CRLF>                       显示当前目录
            LIST [<SP> <pathname>] <CRLF>     列出当前目录下所有文件和子目录
            NLST [<SP> <pathname>] <CRLF>     列出当前目录下所有文件和子目录的名字
            SITE <SP> <string> <CRLF>
            SYST <CRLF>
            STAT [<SP> <pathname>] <CRLF>
            HELP [<SP> <string>] <CRLF>       获取帮助
            NOOP <CRLF>

FTP Security commands and arguments

AUTH <SP> <mechanism-name> <CRLF>
      ADAT <SP> <base64data> <CRLF>
      PROT <SP> <prot-code> <CRLF>
      PBSZ <SP> <decimal-integer> <CRLF>
      MIC <SP> <base64data> <CRLF>
      CONF <SP> <base64data> <CRLF>
      ENC <SP> <base64data> <CRLF>

<mechanism-name> ::= <string>
      <base64data> ::= <string>
              ; must be formatted as described in section 9
      <prot-code> ::= C | S | E | P
      <decimal-integer> ::= any decimal integer from 1 to (2^32)-1

上面是一些ftp协议支持的命令,下面介绍一些使用实例

FTP 协议命令实战

废话就不多说了,下面是用TELNET连接Serv-U测试成功的例子

下载文件
---------------------------------------------------------------------------
TELNET 127.0.0.1 21
220 Serv-U FTP Server v4.0 for WinSock ready...

USER ADMIN
331 User name okay, need password.

PASS ****
230 User logged in, proceed.

PASV
227 Entering Passive Mode <127,0,0,1,4,191>

REST 0
350 Restarting at 0. Send STORE or RETRIEVE.

RETR test.rar
150 Opening ASCII mode data connection for test.rar <94370 bytes>.
226 Transfer complete.

覆盖方式上传文件
---------------------------------------------------------------------------
TELNET 127.0.0.1 21
220 Serv-U FTP Server v4.0 for WinSock ready...

USER ADMIN
331 User name okay, need password.

PASS ****
230 User logged in, proceed.

STOR test.dat
150 Opening ASCII mode data connection for test.dat

PASV
227 Entering Passive Mode <127,0,0,1,4,191>

...创建另一条连接到指定端口然后向其发送数据...

追加方式上传文件
---------------------------------------------------------------------------
TELNET 127.0.0.1 21
220 Serv-U FTP Server v4.0 for WinSock ready...

USER ADMIN
331 User name okay, need password.

PASS ****
230 User logged in, proceed.

APPE test.dat
150 Opening ASCII mode data connection for test.dat

PASV
227 Entering Passive Mode <127,0,0,1,4,191>

...创建另一条连接到指定端口然后向其发送数据...

重命名文件和目录
---------------------------------------------------------------------------
TELNET 127.0.0.1 21
220 Serv-U FTP Server v4.0 for WinSock ready...

USER ADMIN
331 User name okay, need password.

PASS ****
230 User logged in, proceed.

RNFR sss.rar
350 File or directory exists; ready for destination name

RNTO stock.rar
250 RNTO command successfull.

删除文件
---------------------------------------------------------------------------
TELNET 127.0.0.1 21
220 Serv-U FTP Server v4.0 for WinSock ready...

USER ADMIN
331 User name okay, need password.

PASS ****
230 User logged in, proceed.

DELE test.dat
250 DELE command successfull.

建立和删除目录
---------------------------------------------------------------------------
TELNET 127.0.0.1 21
220 Serv-U FTP Server v4.0 for WinSock ready...

USER ADMIN
331 User name okay, need password.

PASS ****
230 User logged in, proceed.

MKD myDir
257 "/myDir" directory created.

RMD myDir
250 RMD command successfull.

退出连接
---------------------------------------------------------------------------
TELNET 127.0.0.1 21
220 Serv-U FTP Server v4.0 for WinSock ready...

USER ADMIN
331 User name okay, need password.

PASS ****
230 User logged in, proceed.

QUIT
221 Goodbye!

转载于:https://www.cnblogs.com/yuedongwei/archive/2011/12/06/4145569.html

FTP协议的命令的使用(转)相关推荐

  1. 网络协议之FTP协议

    1.什么是FTP协议? FTP 是File Transfer Protocol(文件传输协议).用于ftp客户端和ftp服务器之间进行文本.文件传输的协议.与http的短连接不同,FTP协议是一种基于 ...

  2. FTP协议中的RETR和STOR命令

    RETR和STOR命令是FTP协议中的下载和上传命令, 可以针对文件和目录. 下边就下载和上传单个文件, 将在Telnet中测试的心得描述如下: 一. 下载文件 客户端命令序列: 开一个Telnet窗 ...

  3. FTP协议的数据传输模型和相关命令说明

    上文说过,一旦FTP数据发送双方建立控制命令通道和数据传输通道后,双方就可以发送数据.在数据传输中,FTP协议又规定了三种模式,分别是流模式,块模式和压缩模式. 流模式其实就是简单的将要传输的数据比特 ...

  4. java实现FTP协议:数据传输模型和相关命令说明

    上文说过,一旦FTP数据发送双方建立控制命令通道和数据传输通道后,双方就可以发送数据.在数据传输中,FTP协议又规定了三种模式,分别是流模式,块模式和压缩模式. 流模式其实就是简单的将要传输的数据比特 ...

  5. [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  6. ftp 传输数据:命令链路连接方法是一样的,而数据链路的建立方法就完全不同...

    0.FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式. PORT(主动)连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链 ...

  7. 马哥教育第二十四ftp协议、vsftpd的高级应用、rpc概念及nfs的基本应用、samba及其基本应用...

    1.ftp协议及vsftpd的基本应用          文件共享服务:                  工作在应用层:ftp(file transfer protocol)             ...

  8. ftp协议是一种用于_______的协议_网工知识角|快速理解FTP和TFTP的区别,实用收藏...

    点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 FTP和TFTP的区别是什么 CCNA零基础入门必学 FTP(FileTransfer Proto ...

  9. FTP协议常用COMMAND和状态码

    FTP协议常用COMMAND ABOR 中断数据连接程序 ACCT 系统特权帐号 ALLO 为服务器上的文件存储器分配字节 APPE 添加文件到服务器同名文件 CDUP 改变服务器上的父目录 CWD  ...

最新文章

  1. 沐创密码芯片获奖!中国电子学会年度技术发明一等奖,颁给国产集成电路公司...
  2. python的中文含义-python中的 * 和 ** 作用含义
  3. c语言中全局变量内存,C语言——全局变量和局部变量在内存中的区别——及编译后的内存分区【栈-堆-全局存储区-文字常量区-程序代码区】...
  4. [前台]---input标签中的hidden,浏览器差异问题
  5. haproxy+keepalived实现负载均衡及高可用
  6. 论MVVM伪框架结构和MVC中M的实现机制
  7. python 后台系统 源码_这是我见过最好的博客系统!附源码(前端、后台、APP、小程序都有)...
  8. 第二阶段团队冲刺(五)
  9. Numpy入门(详看注释)
  10. 金蝶KIS15.1专业版注册流程和企业认证流程
  11. AndroidStudio实现在图片上涂鸦并记录涂鸦轨迹
  12. 简洁404页面源码 | 自适应404页面HTML源代码下载
  13. 甲醛测量仪 DART WZ-S + stm32f103c + stmDuino IDE + I2C OLED
  14. python 批量下载种子_批量下载btbbt种子
  15. 我认为到现在写的最好的一本小说 《紫川》
  16. 学习yigo遇到的问题
  17. 计算机视觉之图像增广(翻转、随机裁剪、颜色变化[亮度、对比度、饱和度、色调])
  18. Microbime:微生物组学领域的标准制定
  19. 公交充值之——北京一卡通过期延期操作
  20. 吐血整理,2023年最新【阿里、头条、美团】【软件测试】面试题(持续更新)

热门文章

  1. java-mybatis环境搭建
  2. 最好用的在线思维导图软件
  3. jQuery源码解析对象实例化与jQuery原型及整体构建模型分析(一)
  4. C++实现 找出10000以内的完数
  5. Java基础知识之泛型全接触
  6. 我错了,有个叫 SelectSingleNode 的可以操作 xml
  7. List And ArrayList
  8. From 《visual C++ 6.0开发工具与调试》
  9. 深入Java泛型(六):Bean强转原理实践
  10. 二叉树代码我写得很乱!!!整理一下思路