FTP数据包的详细分析.docx
- 文档编号:28950641
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:11
- 大小:148KB
FTP数据包的详细分析.docx
《FTP数据包的详细分析.docx》由会员分享,可在线阅读,更多相关《FTP数据包的详细分析.docx(11页珍藏版)》请在冰豆网上搜索。
FTP数据包的详细分析
FTP数据包的详细分析
与大多数Internet服务一样,FTP也是一个客户机/服务器系统。
用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。
用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。
比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。
客户机程序代表用户接收到这个文件,将其存放在用户目录中。
在FTP的使用当中,用户经常遇到两个概念:
"下载"(Download)和"上载"(Upload)。
"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上载"文件就是将文件从自己的计算机中拷贝至远程主机上。
用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。
使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。
也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。
换言之,除非有用户ID和口令,否则便无法传送文件。
这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。
匿名FTP就是为解决这个问题而产生的。
匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。
系统管理员建立了一个特殊的用户ID,名为anonymous,Internet上的任何人在任何地方都可使用该用户ID。
通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。
习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。
值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。
当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。
系统中的其余目录则处于隐匿状态。
作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上载文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。
即使有些匿名FTP主机确实允许用户上载文件,用户也只能将文件上载至某一指定上载目录中。
随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。
作为一个Internet用户,可通过FTP在任何两台Internet主机之间拷贝文件。
但是,实际上大多数人只有一个Internet帐户,FTP主要用于下载公共文件,例如共享软件、各公司技术支持文件等。
Internet上有成千上万台匿名FTP主机,这些主机上存放着数不清的文件,供用户免费拷贝。
实际上,几乎所有类型的信息,所有类型的计算机程序都可以在Internet上找到。
这是Internet吸引我们的重要原因之一。
匿名FTP使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。
而且,这一切是免费的。
匿名FTP是Internet网上发布软件的常用方法。
Internet之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。
像这样的程序,有许多就是通过匿名FTP发布的,任何人都可以存取它们。
Internet中的有数目巨大的匿名FTP主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名FTP主机上的那个目录中呢?
这正是Archie服务器所要完成的工作。
Archie将自动在FTP主机中进行搜索,构造一个包含全部文件目录信息的数据库,使你可以直接找到所需文件的位置信息。
传输文件的一般步骤如下:
1.在本地电脑上登陆到国际互联网.
2.搜索有文件共享主机或者个人电脑(一般有专门的FTP服务器网站上公布的,上面有进入该主机或个人电脑的名称,口令和路径).
3.当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑.
4.在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东东或者下载别人授权共享的东东(这里的东东是指能放到电脑里去又能在显示屏上看到的东东).
5.完成工作后关闭FTP下载软件,切断连接.
为了实现文件传输,用户还要运行专门的文件传输程序,比如网际快车就有这方面的功能,其它还有很多专门的FTP传输软件,各有各的特色.
一、源代码功能描述与操作指南
1、源代码的功能:
IfLen(txtProxy.Text)<>0Then
hOpen=InternetOpen(scUserAgent,INTERNET_OPEN_TYPE_PROXY,txtProxy.Text,vbNullString,0)
Else
hOpen=InternetOpen(scUserAgent,INTERNET_OPEN_TYPE_DIRECT,
vbNullString,vbNullString,0)
EndIf
IfhOpen=0ThenErrorOutErr.LastDllError,"InternetOpen"
EnableUI(True)
开启与Internet的连接
IfNotbActiveSessionAndhOpen<>0Then
IftxtServer.Text=""Then
MsgBox"Pleaseenteraservername!
"
ExitSub
EndIf
DimnFlagAsLong
IfchkPassive.ValueThen
nFlag=INTERNET_FLAG_PASSIVE
Else
nFlag=0
EndIf
hConnection=InternetConnect(hOpen,txtServer.Text,INTERNET_INVALID_PORT_NUMBER,_
txtUser,txtPassword,INTERNET_SERVICE_FTP,nFlag,0)
IfhConnection=0Then
bActiveSession=False
ErrorOutErr.LastDllError,"InternetConnect"
Else
bActiveSession=True
EnableUI(CBool(hOpen))
FillTreeViewControl(txtServer.Text)
FtpEnumDirectory("")
IfEnumItemNameBag.Count=0ThenExitSub
FillTreeViewControl(txtServer.Text)
EndIf
EndIf
在txtServer、txtUser、txtPassword输入ftp地址、用户名、密码。
如果该ftp允许匿名登入就不需要输入用户名和密码,然后单击就可以连接该ftp了。
imbRetAsBoolean
DimszFileRemoteAsString,szDirRemoteAsString,szFileLocalAsString
DimszTempStringAsString
DimnPosAsLong,nTempAsLong
DimnodXAsNode
SetnodX=TreeView1.SelectedItem
IfbActiveSessionThen
IfnodXIsNothingThen
MsgBox"PleaseselecttheitemtoGET!
"
ExitSub
EndIf
szTempString=TreeView1.SelectedItem.Text
szFileRemote=szTempString
nPos=0
nTemp=0
Do
nTemp=InStr(1,szTempString,"/",vbBinaryCompare)
IfnTemp=0ThenExitDo
szTempString=Right(szTempString,Len(szTempString)-nTemp)
nPos=nTemp+nPos
Loop
szDirRemote=Left(szFileRemote,nPos)
szFileRemote=Right(szFileRemote,Len(szFileRemote)-nPos)
szFileLocal=File1.Path
rcdszDirRemote
bRet=FtpGetFile(hConnection,szFileRemote,szFileLocal&"/"&szFileRemote,False,_
INTERNET_FLAG_RELOAD,dwType,0)
File1.Refresh
IfbRet=FalseThenErrorOutErr.LastDllError,"FtpGetFile"
Else
MsgBox"Notinsession"
EndIf
DimbRetAsBoolean
DimszFileRemoteAsString,szDirRemoteAsString,szFileLocalAsString
DimszTempStringAsString
DimnPosAsLong,nTempAsLong
DimnodXAsNode
SetnodX=TreeView1.SelectedItem
IfbActiveSessionThen
IfnodXIsNothingThen
MsgBox"PleaseselectaremotedirectorytoPUTto!
"
ExitSub
EndIf
IfnodX.Image="leaf"Then
MsgBox"PleaseselectaremotedirectorytoPUTto!
"
ExitSub
EndIf
IfFile1.FileName=""Then
MsgBox"Pleaseselectalocalfiletoput"
ExitSub
EndIf
szTempString=nodX.Text
szDirRemote=Right(szTempString,Len(szTempString)-Len(txtServer.Text))
szFileRemote=File1.FileName
szFileLocal=File1.Path&"\"&File1.FileName
If(szDirRemote="")ThenszDirRemote="\"
rcdszDirRemote
bRet=FtpPutFile(hConnection,szFileLocal,szFileRemote,_
dwType,0)
IfbRet=FalseThen
ErrorOutErr.LastDllError,"FtpPutFile"
ExitSub
EndIf
DimnodChildAsNode,nodNextChildAsNode
SetnodChild=nodX.Child
Do
IfnodChildIsNothingThenExitDo
SetnodNextChild=nodChild.Next
TreeView1.Nodes.RemovenodChild.Index
IfnodNextChildIsNothingThenExitDo
SetnodChild=nodNextChild
Loop
IfnodX.Image="closed"Then
nodX.Image="open"
EndIf
FtpEnumDirectory(nodX.Text)
FillTreeViewControl(nodX.Text)
EndIf
这两个按钮分别可以下载ftp的信息至指定的文件夹和上传信息到ftp上
bDirEmpty=True
IfhConnection<>0ThenInternetCloseHandlehConnection
hConnection=0
ClearBag
TreeView1.Nodes.RemovetxtServer.Text
bActiveSession=False
EnableUI(True)
关闭ftp的连接
IfhConnection<>0ThenInternetCloseHandle(hConnection)
IfhOpen<>0ThenInternetCloseHandle(hOpen)
hConnection=0
hOpen=0
IfbActiveSessionThenTreeView1.Nodes.RemovetxtServer.Text
bActiveSession=False
ClearTextBoxAndBag
EnableUI(False)
关闭与Interne的连接
2、操作:
我介绍的这个用VB做的FTP客户端程序首先点击运行程序,然后先单击StartInternetSession,然后在FTPServerName:
输入FTP的地址,后面的用户名和密码看FTP是否允许匿名登入,不允许匿名登入就需要输入用户名密码,最后就可以选择文件内容,按GET和PUT按钮下载和上传文件。
但是要注意下载的只能是文件夹里面的内容,不能是整个文件夹,上传是上传至文件夹里面的,还要注意FTP是不是允许上传文件。
二、源代码结构与程序流程分析
先连接Interne,然后输入需要连接的ftp的地址,再可以从ftp上下载或者上传文件信息,最后关闭Interne连接。
三、源代码关键技术/难点分析
关键在于如何连接上Interne的代码,继而连接上ftp代码,包括输入的ftp的地址、用户名和密码。
这几个按钮里的代码不知道什么意思。
五、个人收获与小学期总结
暂无
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FTP 数据包 详细 分析