#include <stdio.h>
main(int argc, char *argv[]){
FILE *fp
char str[255]
if (argc!=5){
printf("%s\n%s\n",
"Usage:",
" auto_ftp <ip><user><pass><filename>")
exit()
}
if ((fp=popen("ftp -n","w"))==NULL) {
puts("Run ftp fail !")
exit()
}
//while ((fgets(str,255,fp))!=NULL) puts(str)
fprintf(fp,"open %s\n",argv[1])
fprintf(fp,"user %s %s\n",argv[2],argv[3])
fprintf(fp,"prompt\n")
fprintf(fp,"mget *%s\n",argv[4])
fprintf(fp,"bye\n")
pclose(fp)
}
以上程序编译为auto_ftp,能够自动从命令行指定的IP、用户、密码下载指定的文件。
补充:
上载、下载都是一样的,都是通过管道调用ftp工具,C程序只需要发送命令即可,这些命令可以是任何命令,我程序中是GET,你也可以写PUT。
拿Unix -Solris 来说,你只要在/etc/ftpuser ,用VI编辑在root前面加个#root 然后启动服务svcadm enable -rst ftp 就可以用了,以下是FTP配置文件的参数anonymous_enable=yes允许匿名登陆dirmessage_enable=yes 切换目录时,显示目录下.message的内容
local_umask=022 FTP上本地的文件权限,默认是077
connect_form_port_20=yes 启用FTP数据端口的数据连接
xferlog_enable=yes 激活上传和下传的日志
xferlog_std_format=yes 使用标准的日志格式
ftpd_banner=XXXXX 显示欢迎信息
pam_service_name=vsftpd 验证方式
listen=yes 独立的VSFTPD服务器
anon_upload_enable=yes匿名用户上传权限
anon_mkdir_write_enable=yes创建目录的同时可以在此目录中上传文件
write_enable=yes 本地用户写的权限
anon_other_write_enable=yes匿名帐号可以有删除的权限
anon_world_readable_only=no匿名用户浏览权限
ascii_upload_enable=yes 启用上传的ASCII传输方式
ascii_download_enable=yes 启用下载的ASCII传输方式
banner_file=/var/vsftpd_banner_file 用户连接后欢迎信息使用的是此文件中的相关信息
idle_session_timeout=600(秒) 用户会话空闲后10分钟
data_connection_timeout=120(秒) 将数据连接空闲2分钟断
accept_timeout=60(秒) 将客户端空闲1分钟后断
connect_timeout=60(秒)中断1分钟后又重新连接
local_max_rate=50000(bite) 本地用户传输率50K
anon_max_rate=30000(bite) 匿名用户传输率30K
pasv_min_port=5000 将客户端的数据连接端口改在
pasv_max_port=6000 5000—6000之间
max_clients=200FTP的最大连接数
max_per_ip=4 每IP的最大连接数
listen_port=5555 从5555端口进行数据连接
local_enble=yes本地帐户能够登陆
write_enable=no 本地帐户登陆后无权删除和修改文件
chroot_local_user=yes本地所有帐户都只能在自家目录
chroot_list_enable=yes 文件中的名单可以调用
chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no
userlist_enable=yes在指定的文件中的用户不可以访问
userlist_deny=yes
userlist_file=/etc/vsftpd.user_list
banner_fail=/路径/文件名 连接失败时显示文件中的内容
ls_recurse_enable=no
async_abor_enable=yes
one_process_model=yes
listen_address=10.2.2.2 将虚拟服务绑定到某端口
guest_enable=yes 虚拟用户可以登陆
guest_username=所设的用户名 将虚拟用户映射为本地用户
chown_uploads=yes改变上传文件的所有者为root
chown_username=root
deny_email_enable=yes 是否允许禁止匿名用户使用某些邮件地址
banned_email_file=//任意指定的路径/xx/
pasv_enable=yes 服务器端用被动模式
user_config_dir=/任意指定的路径//任意文件目录指定虚拟用户存放配置文件的路径
ascii_upload_enable=yes 上传的ASCII传输方式
ascii_download_enable=yes 启用下载的ASCII传输方式
banner_file=/var/vsftpd_banner_file 用户连接后欢迎信息使用的是此文件中的相关信息
idle_session_timeout=600(秒)用户会话空闲后10分钟
data_connection_timeout=120(秒)将数据连接空闲2分钟断
accept_timeout=60(秒) 将客户端空闲1分钟后断
connect_timeout=60(秒)中断1分钟后又重新连接
local_max_rate=50000(bite) 本地用户传输率50K
anon_max_rate=30000(bite) 匿名用户传输率30K
pasv_min_port=5000 将客户端的数据连接端口改在pasv_max_port=6000 5000—6000之间
max_clients=200FTP的最大连接数Max_per_ip=4 每IP的最大连接数
listen_port=5555 从5555端口进行数据连接
local_enble=yes本地帐户能够登陆
write_enable=no 本地帐户登陆后无
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)