当前位置:  编程技术>python

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

    来源: 互联网  发布时间:2014-09-04

    本文导语:  Python版本 实现了比之前的xxftp更多更完善的功能 1、继续支持多用户 2、继续支持虚拟目录 3、增加支持用户根目录以及映射虚拟目录的权限设置 4、增加支持限制用户根目录或者虚拟目录的空间大小 xxftp的特点 1、开源、跨平...

Python版本
实现了比之前的xxftp更多更完善的功能
1、继续支持多用户
2、继续支持虚拟目录
3、增加支持用户根目录以及映射虚拟目录的权限设置
4、增加支持限制用户根目录或者虚拟目录的空间大小

xxftp的特点
1、开源、跨平台
2、简单、易用
3、不需要数据库
4、可扩展性超强
5、你可以免费使用xxftp假设自己的私人FTP服务器

测试地址
ftp://xiaoxia.org
匿名帐号可以使用!
匿名根目录只读,映射了一个虚拟目录,可以上传文件但不允许更改!

使用方法
跟之前用C语言写的xxftp使用方法一样:

1. Create a root directory to hold the user directories.
Configure it in config.xml.
2. Create user directories under the root directory.
If you want to specify a password, create a directory named ".xxftp",
under which create a text file named "password" containing the MD5
code of the password.
3. If you want to specify the welcome and goodbye message, write it in
xxftp.welcome and xxftp.goodbye under the root directory.
4. Configure config.xml.

The structure of your FTP server root may be like:

-/root
-xxftp.welcome
-xxftp.goodbye

-user1
-.xxftp
-password
-...
-user2
-.xxftp
-password
-...
-anonymous源代码

代码如下:


import socket, threading, os, sys, time
import hashlib, platform, stat

listen_ip = "localhost"
listen_port = 21
conn_list = []
root_dir = "./home"
max_connections = 500
conn_timeout = 120

class FtpConnection(threading.Thread):
def __init__(self, fd):
threading.Thread.__init__(self)
self.fd = fd
self.running = True
self.setDaemon(True)
self.alive_time = time.time()
self.option_utf8 = False
self.identified = False
self.option_pasv = True
self.username = ""
def process(self, cmd, arg):
cmd = cmd.upper();
if self.option_utf8:
arg = unicode(arg, "utf8").encode(sys.getfilesystemencoding())
print "

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












  • 相关文章推荐
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • eidt.jsp对网页进行编辑,网页内容存放在数据库中,其中有些字段用textarea多行编辑框显示,保存提交数据库后,再次对它编辑,那些用多行
  • 多行 grep 工具 mgrep
  • 提示文字怎样才能按多行显示?
  • 怎样才能使JTable可以在一行中多行显示单元内容?
  • 用VIM做多行匹配,怎样才能将匹配结果输出到文件?
  • mysql如何将多行数据合并成一行
  • 如何给String加回车,既给一个string赋多行值,立刻给分
  • echo 能回显多行内容吗?
  • 多行文字TextArea的问题
  • 求救:sed 删除多行!!!
  • 怎么在命令行下输入多行文字
  • sqlserver中向表中插入多行数据的insert语句
  • 求助啊,可多行选择的下拉列表的取值问题,马上给分!
  • 多行 文本框 怎样产生 换行 (在线 等待)
  • 求问怎么匹配多行文本
  • Shell编程的,可以在shell中访问多行的属性吗?如:
  • sed命令删除多行数据
  • mysql利用group_concat()合并多行数据到一行
  • 如何将一行内容中部分列保持不变,最后一列字符串分成多行显示
  • Sql Server多行合并一行 sql分组统计




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

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

    浙ICP备11055608号-3