首页 > 编程语言 >用Python编写的FTP SERVER端脚本

用Python编写的FTP SERVER端脚本

时间:2023-09-16 15:33:53浏览次数:31  
标签:FTP authorizer logging Python SERVER handler import 日志 dtp

 1 from pyftpdlib.authorizers import DummyAuthorizer
 2 from pyftpdlib.handlers import FTPHandler,ThrottledDTPHandler
 3 from pyftpdlib.servers import FTPServer
 4 from pyftpdlib.log import LogFormatter
 5 import logging
 6 
 7 #记录日志,这里既输出到屏幕又输出到文件,方便日志查看:
 8 logger = logging.getLogger()
 9 logger.setLevel(logging.INFO)
10 ch = logging.StreamHandler()
11 fh = logging.FileHandler(filename='Myftpserver.log',encoding='utf-8')
12 ch.setFormatter(LogFormatter())
13 fh.setFormatter(LogFormatter())
14 logger.addHandler(ch)   #将日志输出至屏幕
15 logger.addHandler(fh)   #将日志输出至文件
16 
17 #实例化虚拟用户,这是FTP验证首要条件
18 authorizer = DummyAuthorizer()
19 #添加用户权限和路径,括号内的参数是(用户名,密码,用户目录,权限),可以为不同的用户添加不同的目录和权限
20 authorizer.add_user("user","123456789","d:/",perm="elradfmw")
21 #添加匿名用户,只需要路径
22 #authorizer.add_anonymous("d:/")
23 #初始化FTP句柄
24 handler = FTPHandler
25 handler.authorizer = authorizer
26 #添加被动端口范围
27 handler.passive_ports = range(2000,2333)
28 #下载上传速度设置
29 dtp_handler = ThrottledDTPHandler
30 dtp_handler.read_limit = 300 * 1024 #300kb/s
31 dtp_handler.write_limit = 300 * 1024
32 handler.dtp_handler = dtp_handler
33 #监听IP和端口,Linux需要root用户才能使用21端口
34 server = FTPServer(("0.0.0.0",21),handler)
35 #最大连接数
36 server.max_cons = 160
37 server.max_cons_per_ip = 20
38 #开始服务,自带日志打印信息
39 server.serve_forever()

 

标签:FTP,authorizer,logging,Python,SERVER,handler,import,日志,dtp
From: https://www.cnblogs.com/donfag/p/17706790.html

相关文章

  • Python——20days
    名字的查找顺序绝对导入和相对导入包的使用正则表示式(独立的语言)字符组字符等…………………………————————————————————————名字的查找顺序:1.先从内存中查找2.再从内置模块中查找3.最后去环境变量sys.path中查找如果以上都找不到,直接报错!......
  • 盘点一个Python网络爬虫问题
    大家好,我是皮皮。一、前言前几天在Python最强王者群【刘桓鸣】问了一个Python网络爬虫的问题,这里拿出来给大家分享下。他自己的代码如下:importrequestskey=input("请输入关键字")res=requests.post(url="https://jf.10086.cn/cmcc-web-shop/search/query",data=......
  • 金碟星空云 sql server常用表(防遗忘)
    数据表命名基本规则:表名前缀:t_或者T_视图前缀:v_或者V_多语言表后缀:_L关联关系表后缀:_LK一、元数据元数据:t_meta_objectType元数据扩展信息表:t_meta_objectType_E元数据缓存表:T_META_OBJECTTYPECACHE元数据视图表:T_META_OBJECTTYPEVIEW元数据视图:V_META_OBJECTTYPE_L元......
  • python 内置常量,异常
    python内置常量FalseTrueNoneNotImplementedEllipsisdebugsitequit()exit()copyrightcreditslicensepython内置异常所有异常都必须派生自BaseException具体异常AssertionError#当一个assert语句失败的时候AttributeError#属性引用失败或者分配失败引......
  • 看懂FTP的主动和被动模式
    主动模式FTP主动模式下,FTP客户端从任意的非特殊的端口(N>1023)连入到FTP服务器的命令端口--21端口。然后客户端在N+1(N+1>=1024)端口监听,并且通过N+1(N+1>=1024)端口发送命令给FTP服务器。服务器会反过来连接用户本地指定的数据端口,比如20端口。以服务器端防火墙为立足点,要支持......
  • Windows server 2022安装配置——网卡驱动配置
    Windows操作系统则更适合个人用户和家庭用户,提供了更轻量级的功能和用户体验,基本将所有功能都配置好了,用户几乎不需要作任何更改就能使用。但对Windowsserver而言,WindowsServer是专为服务器环境和企业级工作负载而设计,提供更高级的功能、安全性和管理选项。所以很多功能是用......
  • python03
    2.编程初体验编程必须保存保存和打开一致否则就会乱码。默认Python解释器都是以UTF-8编码形式打开文件。如果想要修改Python的默认解释器编码,可以这样#-*-coding:gbk-*- 建议所有Python代码文件都要以UTF-8编码保存和读取。3.输出将结果或内容想要呈现给用户关......
  • Python 潮流周刊第 20 期(摘要)
    你好,我是猫哥。本周刊分享优质的Python、AI及通用技术内容,大部分为英文。这里是标题摘要版,查看全文请至☞:https://pythoncat.top/posts/2023-09-16-weekly本周刊开通Telegram频道后,已有650+小伙伴加入,欢迎你到来:https://t.me/pythontrendingweekly......
  • python01
    变量变量名是给我们人类看的,当保存一个文件到内存中时会产生一个内存地址,变量名是为了方便我们找到文件,变量值则是真正的这个文件先定义后调用取名规则在程序全局都会用到的变量,定义在文件开头变量名只能是字母数字或下划线的任意组合,其他都不规范第一个字符不能是数字不......
  • python 生成文件的md5码
    Python生成文件的MD5码引言在开发过程中,我们经常需要对文件进行校验。MD5是一种常用的文件校验算法,它将文件转换为一串固定长度的哈希值,可以用于验证文件的完整性和正确性。本文将教会你如何在Python中生成文件的MD5码。整体流程下面是生成文件的MD5码的整体流程:步骤 描述1 打......