当前位置:  技术问答>linux和unix

ftp client若若一问!(在线给分)

    来源: 互联网  发布时间:2015-01-05

    本文导语:  以下是一个简单的试验。通过socket 连接ftp server的21端口。然后USER anonymous , PASS adfo@eea.net试图登陆服务器(支持匿名登陆,用telent server 21,然后送出USER anonymous , PASS adfo@eea.net。可以得到希望的结果) //////////...

以下是一个简单的试验。通过socket 连接ftp server的21端口。然后USER anonymous , PASS adfo@eea.net试图登陆服务器(支持匿名登陆,用telent server 21,然后送出USER anonymous , PASS adfo@eea.net。可以得到希望的结果)
////////////////////////////////////
////
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 


#define PORT 21
//struct ioctl_data_t d;


int main(int argc, char *argv[])
{
int socketfd , numreceive;
struct hostent* server;
struct sockaddr_in server_addr;
char buffer[5000];
char hostname[] = "real.nwu.edu.cn";

if ((server = gethostbyname(hostname)) == NULL){ //DNS
printf("Get Host errorn");
exit(-1);
}

if ((socketfd = socket(AF_INET, SOCK_STREAM, 0)) == -1){ //initlization socket
printf("socket initliaztion errorn");
exit(-1);
}
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(PORT);
server_addr.sin_addr = *((struct in_addr*)server->h_addr);
bzero(&(server_addr.sin_zero) , 8);

    if (connect(socketfd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)) == -1){ //connect;
printf("connect errorn");
exit(-1);
}

int i = 1;
while(i!=2){
if ((numreceive = recv(socketfd, buffer, sizeof(buffer), 0)) == -1){ //receive message from a socket
printf("receive message errorn");
exit(-1);
}
i++;
}

int buffer_end = sizeof(buffer) + 1;
buffer[buffer_end] = '';
printf("%s" , buffer);

char send_msg[] = "USER anonymousn"; //send anonymous quest and receive server message;

if ((numreceive = send(socketfd, send_msg, sizeof(send_msg), 0)) == -1){
printf ("send message errorn");
exit(-1);
}
if ((numreceive = recv(socketfd, buffer, sizeof(buffer), 0)) == -1){ //receive message from a socket
printf("receive message errorn");
exit(-1);
}

buffer[numreceive + 1] = '';
printf("%sn", buffer);

char send_msg2[] = "PASS adfoa@245.netn"; //send password and receive message from server

if ((numreceive = send(socketfd, send_msg2, sizeof(send_msg2), 0)) == -1){
printf ("send message errorn");
exit(-1);
}

if ((numreceive = recv(socketfd, buffer, sizeof(buffer), 0)) == -1){ //receive message from a socket
printf("receive message errorn");
exit(-1);
}

buffer[numreceive + 1] = '';
printf("%sn" , buffer);
close(socketfd);
return 0;
}
//////////////////////////
运行后的提示如下:(faint.........)
///
220 real FTP server (Version wu-2.6.1(1) Wed Aug 9 05:54:50 EDT 2000) ready.
331 Guest login ok, send your complete e-mail address as password.
)
530 Please login with USER and PASS.

问题好像出在PASS *******那块。在SEND passwd时。是否需要加密(md5?)。可是我看了一些ftp client 的源码好像都不用。而且就算要加密。server也应当send一个
encrypt key 过来。
难道要用ioctl来转换么?没用过这个函数。有谁能说说。

|
没写过,提些建议。
你可以用crypt后的密文:
crypt(passwd, salt);
passwd是加密前的明文,salt是两个字符的字符串,你可以给任意字符。
比如:
char salt[] = "ab";

你也可以直接试一下shadow文件中相应用户加密后的密码

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 新手虚心请教.在线等复....vsftp配置成功后,本机可以FTP上,但其他系统通过FTP工具不能上.防火墙不能关..
  • ftp连接问题,就是linux连接windows ftp的问题,高手请进(在线等待)!!!!!
  • 求教:磁盘挂接后FTP无法使用的问题(28日在线)
  • 请问:(Solaris系统)ftp>下怎么改密码?在线等
  • HP-UX重启后,FTP出现问题,在线等。。。。
  • redhat linux 连接不上FTP服务器?在线等
  • linux 如何开通 ftp,在线等
  • linux 中增加一个ftp用户名和密码的问题,在线等
  • 如何打开ftp服务?(在线等待,解决即结)
  • 关于vmware中两个系统之间用ftp传输的流量问题(在线等)
  • 请教:linux8.0中装了wu-ftpd,ftp后目录无法更改!(在线等)
  • 关于FTP取文件的问题,在线等,谢谢!
  • ftp 命令请教, 在线等候, 高分相送
  • 一个关于telnet,ftp的小问题,烦请指教,本人在线等!
  • [在线等]关于ftp服务器目录的问题
  • 请问linux 下怎么屏root用户的NETMER,和FTP登陆,很急在线等!
  • 在线求救啊!我用rth8。0做的nat 主机,下面的机器不能ftp外网
  • 在windows下如何ftp文件到linux? 在线等待!!
  • linux下ftp问题 在线等
  • 求助!为什么linux下FTP允许windows登录而不允许linux登录?在线等
  • java命名空间javax.print.attribute.standard类referenceurischemessupported的类成员方法: ftp定义及介绍
  • 用ftp命令连到ftp服务器后,在ftp提示符下用什么命令可以查看本地机器当前目录有哪些文件?
  • ftp协议介绍及ftp常用的上传下载等操作命令使用方法
  • 为什么会出现ftp: ftp/tcp: unknown service
  • FTP客户端Java类库 ftp4j
  • 请问如何在Redhat7.1下安装Ftp服务,如何开启Ftp帐号????请教!!!急急急急急急
  • FTP匿名登陆 LINUX 出现错误 linux FTP 550 permission
  • ubuntu装好BUM后,看不到FTP服务,如何开启FTP服务?
  • 新手虚心请教.在线等复....vsftp配置成功后,本机可以FTP上,但其他系统通过FTP工具不能上.防火墙不能关.. iis7站长之家
  • 跨平台FTP服务器 Wing FTP Server
  • Node.js 的 FTP 客户端 node-ftp


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3