Python实现的ftp服务器功能详解【附源码下载】

本文实例讲述了Python实现的ftp服务器功能。分享给大家供大家参考,具体如下:

python 具备强大的网络编程功能,而且代码简介,用简单的代码,就能实现一个功能强大的FTP 服务器。我亲自测试了这个 python ftp server. 代码下载,在文章的末尾处,整个部署介绍如下:

1. 环境, python 2.7.3 ,centos 6.2 .

2. 定义服务器ip ,端口等信息,可以在下载的源码中查看

listen_ip = "192.168.4.128" # ftp server 的 ip 地址
listen_port = 2111 # ftp 端口,默认21,这里我设置成2111.
conn_list = []
root_dir = "/home/summer/ftp" # 这是定义的ftp目录,可以改成你想要的.
max_connections = 500
conn_timeout = 120

3. 搭建一个测试ftp 目录

在 /home/summer/ftp 目录下,新建 目录 :anonymous ,这是为了支持匿名用户的

在 /home/summer/ftp 目录下,新建 目录 :yihaomen, 目录名也就是用户名,然后再yihaomen 目录下创建 ".xxftp" 目录,然后在此目录中建立一个文件 password, 并用 vi 编辑,添加内容为"5f4dcc3b5aa765d61d8327deb882cf99" 其实这就是 "password"  的 md5 加密后的字符串.

4. 现在启动 python Ftp脚本,启动后会显示提示: ftpd is listening on  192.168.4.128:2111

5. 找一台windows 机器登陆:用户名:yihaomen,密码:password

由于我们开启了匿名用户,所以不用登陆也是可以的。
登陆之后,你就可以创建文件夹,添加删除文件了。

6. 回到 centos 服务器上面,你会发现 你添加的东西已经生效。

用这种方法,可以很灵活的实现一个自己需要的FTP server ,而且也很好继承到各种环境中,也很方便.

完整实例代码点击此处本站下载。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • 1 行 Python 代码快速实现 FTP 服务器

    摘要: 当你想快速共享一个目录的时候,这是特别有用的,只需要1行代码即可实现. 当你想快速共享一个目录的时候,这是特别有用的,只需要1行代码即可实现. FTP 服务器,在此之前我都是使用Linux的vsftpd软件包来搭建FTP服务器的,现在发现了利用pyftpdlib可以更加简单的方法即可实现FTP服务器的功能. 环境要求 Python 2.7 Windows / Linux 环境搭建 一行代码实现FTP服务器 通过Python的-m选项作为一个简单的独立服务器来运行,当你想快速共享一个目录的

  • 使用python实现快速搭建简易的FTP服务器

    上回说到,使用python搭建一个简易的web下载服务器,但是这个简易的服务器客户端不能够上传文件.这次来搭建一个简易的ftp服务器,来提供文件的下载和上传功能. 一.首先我们来安装提供服务的pyftpdlib模块 pip install pyftpdlib 二.然后通过python的-m选项将pyftpdlib模块简单的独立服务器运行起来.这时我们想要共享那个目录,只需在该目录下运行命令即可 python -m pyftpdlib -m 以模块的方式启动 验证: 到这里,一个简单的FTP服务器

  • Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例

    本文实例讲述了Python实现基于多线程.多用户的FTP服务器与客户端功能.分享给大家供大家参考,具体如下: 项目介绍: 1. 用户加密认证 2. 允许同时多用户登录 3. 每个用户有自己的家目录 ,且只能访问自己的家目录 4. 对用户进行磁盘配额,每个用户的可用空间不同 5. 允许用户在ftp server上随意切换目录 6. 允许用户查看当前目录下文件 7. 允许上传和下载文件,保证文件一致性 8. 文件传输过程中显示进度条 实现的原理: 服务器端启用端口监听,并对每一连接启用一个线程,对用

  • Python搭建FTP服务器的方法示例

    Python版本 3.6.2 使用的ftp包:pyftpdlib    pip install pyftpdlib就可以下载安装了 FTP协议下载上传文件在文件过大的情况下会比HTTP更具有优势,更为方便的实现断点上传和进度监控,下面是官方文档中的 基本方法 import os from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler from pyftpdlib.ser

  • Python搭建HTTP服务器和FTP服务器

    本教程为大家分享了Python搭建HTTP服务器和FTP服务器的具体步骤,供大家参考,具体内容如下 默认安装版本为pytho2.7 http服务器搭建教程: 进入要开放访问的目录下,执行命令:python -m SimpleHTTPServer 9000 显示上述表示安装成功,且http服务的端口为:9000,不跟端口默认80端口 通过浏览器访问该http服务: http://localhost:9000 页面显示入下: 服务器端显示如下: 表示接收请求成功. 下面是ftp服务器搭建教程: py

  • 详解Python下ftp上传文件linux服务器

    模块介绍: from ftplib import FTP ftp = FTP() #设置变量 ftp.set_debuglevel(2) #打开调试级别2 显示详细信息 ftp.connect("IP", "port") #连接ftp, IP和端口 ftp.log("user", "password") #连接的用户名.密码 ftp.cwd(pathname) #设置FTP当前操作的路径 ftp.dir() #显示目录下的文件

  • 400多行Python代码实现了一个FTP服务器

    Python版本 实现了比之前的xxftp更多更完善的功能 1.继续支持多用户 2.继续支持虚拟目录 3.增加支持用户根目录以及映射虚拟目录的权限设置 4.增加支持限制用户根目录或者虚拟目录的空间大小 xxftp的特点 1.开源.跨平台 2.简单.易用 3.不需要数据库 4.可扩展性超强 5.你可以免费使用xxftp假设自己的私人FTP服务器 测试地址 ftp://xiaoxia.org 匿名帐号可以使用! 匿名根目录只读,映射了一个虚拟目录,可以上传文件但不允许更改! 使用方法 跟之前用C语言

  • Python实现的FTP通信客户端与服务器端功能示例

    本文实例讲述了Python实现的FTP通信客户端与服务器端功能.分享给大家供大家参考,具体如下: 一 代码 1.服务端代码 import socket import threading import os import struct #用户账号.密码.主目录 #也可以把这些信息存放到数据库中 users = {'zhangsan':{'pwd':'zhangsan1234', 'home':r'c:\python 3.5'}, 'lisi':{'pwd':'lisi567', 'home':'c

  • python实现FTP服务器服务的方法

    FTP服务的主动模式和被动模式 在开始之前,先聊一下FTP的主动模式和被动模式,两者的区别 , 用两张图来表示可能会更加清晰一些: 主动模式: 主动模式工作过程: 1. 客户端以随机非特权端口N,就是大于1024的端口,对server端21端口发起连接 2. 客户端开始监听 N+1端口: 3. 服务端会主动以20端口连接到客户端的N+1端口. 主动模式的优点: 服务端配置简单,利于服务器安全管理,服务器只需要开放21端口 主动模式的缺点: 如果客户端开启了防火墙,或客户端处于内网(NAT网关之后

  • python定时采集摄像头图像上传ftp服务器功能实现

    首先是截图,从摄像头截取一幅图像: 复制代码 代码如下: while 1:   #测试摄像头的存在    try:        cam = Device()    except:        print "no webcam found!"        continue    break 然后是把图像上传到ftp服务器: 复制代码 代码如下: remote = ftplib.FTP('127.0.0.1') #登陆服务器remote.login()file = open('%s.

  • python通过ftplib登录到ftp服务器的方法

    本文实例讲述了python通过ftplib登录到ftp服务器的方法.分享给大家供大家参考.具体实现方法如下: import ftplib connect = ftplib.FTP("www.mysite.com") connect.login("domain\user", "password") data = [] connect.dir(data.append) connect.quit() for line in data: print(li

随机推荐