FTP服务的LIST指令获取的文件列表信息的解析
日期:2005年12月6日 作者: 查看:[大字体 中字体 小字体]-
客户端使用LIST命令指定获取服务器端FTP共享目录(或者下面的子目录),服务器端将通过数据端口将该指定目录下的文件列表(包括子目录)信息发送给客户端。本文对该文件列表信息进行分析和解析。
文件列表信息分为UNIX格式和DOS格式两种。笔者是比照了Serv-U和微软自带的FTP服务器写出本文的,也许别的服务器另有新的方式或者格式也说不定,欢迎大家补充。
首先不妨来看一下UNIX格式和DOS格式下的文件列表信息都是怎么样的:
//MS-DOS文件列表格式解析
//02-23-05 09:24AM 2245 readme.ESn
//05-25-04 08:56AM 19041660 VC.ESn
UNIX文件列表格式解析
UNIX文件格式:
Serv-U:
-rwxrw-r-- 1 user group 3014 Nov 12 14:57 cwinvnc337.ESn
-rwxrw-r-- 1 user group 20480 Mar 3 11:25 inmcsvr更新说明.ESn
-rwxrw-r-- 1 user group 450 Apr 13 11:39 对话框中加入工具条.ESn
Windows自带FTP:
-rwxrwxrwx 1 owner group 19041660 May 25 2004 VC.ESn
-rwxrwxrwx 1 owner group 450 Apr 6 15:04 对话框中加入工具条.ESn
注:由于未发现Serv-U支持DOS格式,因此DOS格式只列了微软自带的。
下面我们对以上的格式进行分析:
首先,文件列表信息中,每个文件的信息之间用回车换行符(\r\n)分隔。因此分解时第一步就是用\r\n进行截取。然后是对每一个文件信息的解析。
每一个文件信息中,分为多个信息段,各个信息段之间用一个空格符间隔。UNIX格式和DOS格式的信息段的数量的顺序是不同的。下面将分别分析。
先看看DOS格式,拿出一条文件信息来讲:02-23-05 09:24AM 2245 readme.ESn
第一段为05-25-04,一个空格后,为第二段08:56AM,一个空格后,为 19041660,由于文件长度不一定,预留的位置比较长,因此前面用空格填充了。
解析的时候,逐段用空格截取,记住,截取完第一段后,剩下的内容先用TrimLeft去除左侧的空格,然后继续截取就可以了。
因此,DOS格式共分四段,其中第一段为日期,第二段为时间,第三段为文件长度,第四段为文件名称。
对了,如果只需要获取文件名称,你也不能从后面截取,因为文件名称是允许带空格的。:》
另外,如果列举的是个目录,那么,第三段就不是文件长度了,而是固定为:<DIR>
再看UNIX格式,也拿出一条文件信息来讲:
-rwxrw-r-- 1 user group 3014 Nov 12 14:57 cwinvnc337.ESn
unix我不熟,每一段的意义不太清楚。但以上的格式分解为:第一段为-rwxrw-r--,第二段为1,第三段为user,第四段为group,第五段为文件长度,第六段为月,第七段为日,第八段为时间,第九段为文件名称。
需要注意的是:如果格式串的第一个字符为d,表示为一个目录信息,比如drwxrw-r--
另外,第八段有可能不是时间,而是年份,比如2005,从上面的例子中你可以发现。
对于不同的FTP服务器,LIST获取的信息不尽相同,但段的顺序和意义是不变的。只是表示文件的长度的段的长度有所不同。
以下是笔者在实际项目中的解析函数,做的不是很好,但希望对大家有所帮助吧。
/***************************************************
Function: CRecvFileMan::PraseFileList_MSDOS
Description: 解析MSDOS风格的文件列表 - [1] [2] [3] 下一页
-
- FTP服务的LIST指令获取的文件列表信息的解析 相关文章:
- ·利用UNIX的TFTP和RCP配置路由器
- ·教你在Red Hat下架设FTP服务器
- ·Windows中IIS内FTP服务器高级配置
- ·用SRP服务构建Linux下FTP服务器
- ·修改XDB的http和ftp服务端口的三种方法
- ·通过宽带路由器搭建WEB/FTP服务器
- ·巧用我的电脑 解决IE7的FTP问题
- ·Linux操作系统中的FTP客户端 为新手指南
- ·详解:FTP登陆错误问题完全分析
- ·基于WIN XP架设Web和FTP服务器
- FTP服务的LIST指令获取的文件列表信息的解析 相关软件
- ·如何在 Solaris 架设 FTP 虚拟系统
- ·如何在 Solaris 安裝 Anonymous FTP Server
- ·FTPDrive(仿效逻辑驱动器) V3.5 绿色汉化版
- ·FTPRush(FTP客户端工具)绿色中文版 V1.0.0608 UNICODE
- ·SoftPerfect Network Scanner(多线程IP,NetBIOS,SNMP扫描器)
- ·Advanced FTP Password Recoveryv1.0.180.
- ·Golden FTP server Prov2.80
- ·XM Easy Personal FTP Serverv5.1.1
- ·Xlight FTP Serverv2.24 简体中文版
- ·SmartFTPv2.0.996.46
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:flash获得用户屏幕的分辨率
下一篇:用PHP计算身份证校验码
精品推荐
热点TOP10
- ·FTP PASV mode (被动模式) 全过程与设置说明
- ·外网用户如何访问内网FTP服务器
- ·ftp服务器——架设篇
- ·个人FTP的制作方法
- ·java做的比较完善的FTP连接上传下载文件
- ·流光破解ftp密码教程
- ·全程图解 基于XP架设Web和FTP服务器
- ·空间域名常见问题解答:FTP类
- ·教你巧用我的电脑 解决IE7的FTP问题
- ·FTP服务器的攻防实战
- ·FTP服务的LIST指令获取的文件列表信息的解析
- ·内网FTP服务器架设不完全解析
- ·Windows Vista 官方中文正式版(MSDN)32bit和64bit(BT&FTP下载)
- ·打造SSL安全加密的FTP服务器(图)
- ·Ftp的攻击
- ·得到FTP密码之后
- ·wu-ftpd小技巧
- ·ftp使用经典
- ·MS02-018中的FTP拒绝服务漏洞利用程序
- ·FTP口令受到穷举法暴力攻击后的蛛丝马迹
特别推荐
- ·知道FTP用户名和密码,如何修改密码
- ·详解:FTP登陆错误问题完全分析
- ·巧妙设定匿名FTP的安全
- ·让网络工作事半功倍 经典FTP使用命令大全
- ·FTP命令详解
- ·新手学堂:解析FTP协议的两种工作模式
- ·教你巧用我的电脑 解决IE7的FTP问题
- ·网络应用:FTP服务器匿名用户上传文件的配置
- ·FTP服务器的攻防实战
- ·外网用户如何访问内网FTP服务器
- ·ftp服务器——架设篇
- ·FTP PASV mode (被动模式) 全过程与设置说明
- ·教程/操作系统 Win2000中如何让FTP 服务器更安全
- ·巧用DOS命令上传文件
- ·轻松架设Windows 2003用户隔离FTP站点
- ·内网架设FTP服务器不完全攻略
- ·入侵宝典 用SlimFTP将肉鸡改为私人服务器
- ·37个教育网的FTP
- ·为Serv-U提供在线修改密码功能
- ·FTP登录错误详解
