当前位置 博文首页 > nftp,ftp命令和返回值

    nftp,ftp命令和返回值

    作者:xiaoyingying 时间:2021-07-09 16:35

        在windows-dos环境下使用的ftp文件传输客户端软件具有速度快的特点。它有6个文件来搜索ftp站点。它支持包括汉字在内的19种文字。它适用于各种操作系统平台。
        FTP命令和返回值
        Ftp命令:
        也许很多人都用过Ftp命令,但是可能也有许多人和我曾经犯一样的错误,错认了Ftp命令。我原来在win2000的控制台下打上Ftp,然后进入了Ftp提示符下,接着我用上了许多符有“windows”特色的命令,如“dir”,“cd”,看到它按照自己的想法在运行,以为自己便掌握了Ftp命令了。我非常有信心的打开编程工具,写一个socket,然后向ftp服务器连接了。当然,服务器返回了信息提示是连接成功了,我便开始发送刚才用过的一些命令,可返回的信息大多都是“500'xx':commandnotunderstood”。最后,我发送了help命令,返回的结果让我惊异不已,里面的命令大多我都没用过。原来这些才是真正的Ftp命令。Windows里面的只是Ftp的客户端工具,里面的命令根本不是Ftp命令。网上有许多资料里也是把windows里Ftp客户端的命令和Ftp命令混在一起。真正的Ftp命令应参考RFC959文档中的说明(其实一些Ftp工具如CuteFtp里也把命令显示出来)。其中经常被使用的命令包括如下:
        带有星号的命令一般很少使用,所以往往在具体实现中不支持。
        ABOR放弃传输
        *ACCT某些系统将帐号和用户与文件系统相关联
        *ALLO为即将传送的文件分配空间。后面携带的参数来确定字节数
        *APPE将文件附加到已经存在的文件后面
        CDUP在远程系统上将当前目录切换到上级父目录
        CWD改变远程系统的工作目录
        DELE删除远程系统的文件
        HELP读取服务器的帮助信息,如:支持的命令的列表
        LIST在一个新建立的数据连接上发送当前工作目录下的文件名列表
        MKD创建目录
        MODE指定传输模式,可携带的参数是:S、B或C.
        NLST在一个新建立的数据连接上发送一个当前目录下的“完全”的目录列表
        NOOP空操作,防止连接断掉
        PASS提供一个用户登录密码,必须立即跟随在USER命令后
        *PASV指定服务器数据传输过程监听等待客户端的数据连接连接建立请求
        PORT指定客户端监听等待服务器端建立的连接的端口号
        PWD显示服务器端的当前工作目录名
        QUIT退出登录并终止连接
        *REIN重新初始化,退出登录但是并不断开连接,后面必须随后发出一个新的USER命令
        *REST从服务器的一个标识处重新开始传输
        RETR从远程系统取回一个文件,即下载文件
        RMD删除一个目录
        *RNFR指定要被命名的文件的老的路径名,随后必须是一个RNTO命令
        *RNTO指定要被命名的文件的新的路径名
        *SITE站点特有的服务器提供的服务
        SIZE〈FILENAME〉:文件大小,执行成功返回213;
        *SMNT结构加载,提供一个文件系统结构的远程系统路径名
        *STAT状态信息
        STOR上载一个文件到服务器上,若文件已经存在则覆盖
        *STOU上载一个文件到服务器上,不覆盖已经存在的文件
        STRU指定文件结构,参数可以是F、R或P.
        *SYST报告远程系统的操作系统类型
        TYPE指定文件类型,参数可以是A、E、I、L只有TYPEA和TYPEI常用
        Ftp命令的返回值:
        每一个Ftp发送之后,Ftp服务器都会返回一个字符串,其中包括一个返回代码和一串说明信息。这个返回码主要是用于判断命令是否被成功执行了。除此之外,还有一个非常重要的命令的返回。当发送PASV之后,返回“227EnteringPassiveMode(127,0,0,1,4,18)”。这意味着在服务器上有一个端口被开放,他将为我们后面接着的数据传输作好准备,但是我们如何知道该端口号呢,就在(127,0,0,1,4,18)中,前面四位指服务器的地址,关键是最后两位,将最后第二位乘256再加上最后一位的值就是我们的端口号,也就是4*256+18。取得端口号之后我们就可以用socket连接到这里。这为我们后面的工作作好准备了,因为我们的取得列表,上传,下载文件都要依靠它来实现。常用的返回如下:
        125Dataconnectionalreadyopen;Transferstarting.
        226Transfercomplete.
        227EnteringPassiveMode(127,0,0,1,4,18).
        230Userxxxxxloggedin.
        331Passwordrequiredforxxxxx.
        425Can’topendataconnection.
        226Closingdataconnection.
        原文链接:https://blog.csdn.net/Draven_Liu/article/details/38231483