日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

python一秒搭建FTP服務(wù)器

瀏覽:31日期:2022-06-19 15:13:48
一、了解FTP服務(wù)器 FTP(文件傳輸協(xié)議),運行在tcp洗衣上,使用兩個端口,即數(shù)據(jù)端口和命令端口,也稱之為控制端口。默認情況下,20是數(shù)據(jù)端口,21是控制端口。 FTP有兩種傳輸模式:主動模式和被動模式

(1) 主動模式:客戶端首先從任意的非特殊端口n(大于1023的端口,也是客戶端的命令端口)連接FTP服務(wù)器的命令端口(默認是21),向服務(wù)器發(fā)出命令 PORT n+1,告訴服務(wù)器自己使用n+1端口作為數(shù)據(jù)端口進行數(shù)據(jù)傳輸,然后在n+1端口監(jiān)聽。服務(wù)器收到PORT n+1后向客戶端返回一個“ACK”,然后服務(wù)器從它自己的數(shù)據(jù)端口(20)到 客戶端先前指定的數(shù)據(jù)端口(n+1端口)的連接,最后客戶端向服務(wù)器返回一個“ACK”。

python一秒搭建FTP服務(wù)器

(2)被動模式:為了解決服務(wù)器發(fā)起到客戶端的連接問題,開發(fā)了被動FTP,或者叫做PASV,當(dāng)客戶端通知服務(wù)器處于被動模式時才啟用。在被動模式下,命令連接和數(shù)據(jù)連接都是有客戶端發(fā)起。當(dāng)開啟一個FTP連接時,客戶端打開兩個非特權(quán)的任意端口(大于1023)。第一個端口連接服務(wù)器的21端口,但是與主動方式不同,客戶端不會提交PORT命令并允許服務(wù)器來回連接數(shù)據(jù)端口,而是提交PASV命令。這樣做的結(jié)果就是服務(wù)器會開啟任意一個非特權(quán)端口,并且發(fā)送PORT p命令給客戶端,然后客戶端發(fā)起從本地端口 n+1 到 服務(wù)器端口p 的連接來傳輸數(shù)據(jù)

python一秒搭建FTP服務(wù)器

總結(jié):主動模式有利于對FTP服務(wù)器的管理,但是不利于對客戶端的管理。因為FTP服務(wù)器企圖和客戶端的高位隨機端口建立連接,而這個端口很有可能會被客戶端的防火墻阻塞掉。被動模式相反。

二、利用python搭建FTP服務(wù)器

python搭建FTP需要利用到pyftpdlib模塊

1.安裝 pyftpdlib 模塊

C:UsersLTP> pip3 install pyftpdlibC:UsersLTP> python3 -m pyftpdlib -p 21

2.找到pyftpdlib模塊源文件所在目錄

C:UsersLTP> python3……>>> import pyftpdlib>>> pyftpdlib.__path__[’/usr/local/python3/lib/python3.7/site-packages/pyftpdlib’]

3.到 pyftpdlib目錄下

發(fā)現(xiàn) filesystems.py 和 handlers.py 兩個文件,先執(zhí)行備份

C:UsersLTP> dir E:PycharmProjectsuntitledproject01venvLibsite-packagespyftpdlib2021/05/15 17:50 <DIR> .2021/05/15 17:50 <DIR> ..2017/12/30 16:44 35,246 authorizers.py2021/05/15 17:49 24,798 filesystems - 副本.py2021/05/15 17:49 24,798 filesystems.py2019/10/24 16:26 144,635 handlers - 副本.py2019/10/24 16:26 144,635 handlers.py2017/12/30 16:44 36,769 ioloop.py2019/10/24 16:26 5,823 log.py2019/10/24 16:26 3,844 prefork.py2019/10/24 16:26 21,658 servers.py2021/05/15 17:45 <DIR> test2019/10/24 16:26 774 _compat.py2019/10/24 16:28 2,845 __init__.py2018/04/26 18:41 4,879 __main__.py2021/05/15 17:46 <DIR> __pycache__ 12 個文件450,704 字節(jié) 4 個目錄 44,605,644,800 可用字節(jié)# 備份 filesystems.py 和 handlers.py# 修改filesystems.py文件# 將原本的'utf-8'修改成'gbk'(windows支持的gbk類型的bytes)503 yield line.encode(’gbk’, self.cmd_channel.unicode_errors# 修改 handlers.py 文件# 將原本的'utf-8'修改成'gbk'(windows支持的gbk類型的bytes)1413 return bytes.decode(’gbk’, self.unicode_errors)

4. 編寫并運行FTP代碼

# 該腳本程序是運行在windows上的ftp,運行前需要安裝pyftpdlib模塊, pip3 install pyftpdlib# 修改filesystems.py文件,將503 行的 'utf-8'修改成'gbk'(windows支持的gbk類型的bytes)即 yield line.encode(’gbk’, self.cmd_channel.unicode_errors# 修改 handlers.py 文件,將1413行的'utf-8'修改成'gbk'(windows支持的gbk類型的bytes)即 return bytes.decode(’gbk’, self.unicode_errors)from pyftpdlib.authorizers import DummyAuthorizerfrom pyftpdlib.handlers import FTPHandler,ThrottledDTPHandlerfrom pyftpdlib.servers import FTPServerfrom pyftpdlib.log import LogFormatterimport logging# 1.記錄日志輸出到文件和終端logger = logging.getLogger(’FTP-LOG’)logger.setLevel(logging.DEBUG)cs = logging.StreamHandler()cs.setLevel(logging.INFO)fs = logging.FileHandler(filename=’test.log’, mode=’a’, encoding=’utf-8’)fs.setLevel(logging.DEBUG)formatter = logging.Formatter(’[%(asctime)s] %(name)s - %(levelname)s : %(message)s’)cs.setFormatter(formatter)fs.setFormatter(formatter)logger.addHandler(cs)logger.addHandler(fs)# 2.實例化虛擬用戶,這是FTP的首要條件authorizer = DummyAuthorizer()# 3.添加用戶權(quán)限和路徑,括號內(nèi)的參數(shù)是(用戶名、密碼、用戶目錄、權(quán)限),可以為不同的用戶添加不同的目錄和權(quán)限authorizer.add_user(’user’, ’123456’, 'd:/', perm='elradfmw')# 4.添加匿名用戶,只需要路徑authorizer.add_anonymous('d:/')# 5.初始化ftp句柄handler = FTPHandlerhandler.authorizer = authorizer# 6.添加被動端口范圍handler.passive_ports = range(2000,20033)# 7.上傳下載的速度設(shè)置dtp_handler = ThrottledDTPHandlerdtp_handler.read_limit = 300 * 1024 # 300 kb/sdtp_handler.write_limit = 300 * 1024 # 300 kb/shandler.dtp_handler = dtp_handler# 8.監(jiān)聽ip和端口 , linux里需要root用戶才能使用21端口server = FTPServer((’0.0.0.0’, 21), handler)# 9.最大連接數(shù)server.max_cons = 150server.max_cons_per_ip = 15# 10.開始服務(wù),自帶打印日志信息server.serve_forever()

authorizer.add_user(‘user’, ‘123456’, “d:/”, perm=“elradfmw”)中perm權(quán)限參數(shù)的含義:1、讀權(quán)限:

e :改變文件目錄l :列出文件r :從服務(wù)器接收文件2、寫權(quán)限

a :文件上傳d :刪除文件f :文件重命名m :創(chuàng)建文件w :寫權(quán)限M:文件傳輸模式(通過FTP設(shè)置文件權(quán)限)5.使用CMD登入FTP驗證使用正常,認證正常

python一秒搭建FTP服務(wù)器

三、編寫FTP客戶端程序

可以用于文件的上傳下載

[root@localhost python]# vim ftp.py #!/bin/env python3# -*- coding: utf-8 -*-# Time: 2021-5-15 21:08# Description: FTP CLIENT# File Name: ftp.py# FTP客戶端from ftplib import FTP# 1.登入ftpftp = FTP(host=’192.168.0.108’, user=’user’, passwd=’123456’)# 設(shè)置編碼方式,由于在windows系統(tǒng),設(shè)置編碼方式為gbk’ftp.encoding = ’gbk’# 切換目錄ftp.cwd(’test’)# 列出文件夾內(nèi)容ftp.retrlines(’LIST’) # 或者ftp.dir()# 下載文件 node.txtftp.retrbinary(’RETR node.txt’, open(’node.txt’, ’wb’).write)# 上傳文件ftpserver.pyftp.storbinary(’STOR ftpserver.py’, open(’ftpserver.py’, ’rb’))# 查看目錄下文件詳情for file in ftp.mlsd(path=’/test’): print(file)

執(zhí)行結(jié)果:

[root@localhost python]# ./ftp.py # 列出了test文件夾中的內(nèi)容-rw-rw-rw- 1 owner group 1661 May 15 14:19 ftpserver.py-rw-rw-rw- 1 owner group 12 May 15 14:14 node.txt# 查看到了目錄下文件的詳情(’ftpserver.py’, {’modify’: ’20210515142003’, ’perm’: ’radfw’, ’size’: ’1661’, ’type’: ’file’})(’node.txt’, {’modify’: ’20210515141442’, ’perm’: ’radfw’, ’size’: ’12’, ’type’: ’file’})[root@localhost python]# ls # node.txt文件被下載到客戶端ftp.py ftpserver.py node.txt

到windows的test目錄下驗證

ftpserver.py文件被上傳到服務(wù)端

python一秒搭建FTP服務(wù)器

以上就是python一秒搭建FTP服務(wù)器的詳細內(nèi)容,更多關(guān)于python FTP服務(wù)器的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本免费新一区视频| 亚洲高清不卡| 国产亚洲一级| 国产精品日韩| 亚洲大全视频| 亚洲特色特黄| 国产精品腿扒开做爽爽爽挤奶网站| 久久久久91| 免费观看不卡av| 亚洲精品一二三区区别| 91成人超碰| 美日韩精品视频| 日日夜夜免费精品| 欧美色综合网| 91精品日本| 国产精品xxx| 97精品国产一区二区三区| 狠狠久久伊人| 夜夜精品视频| 国产亚洲欧美日韩精品一区二区三区| 久久99久久久精品欧美| 91精品国产自产在线观看永久∴| 亚洲深夜福利| 国产色噜噜噜91在线精品| 久久久久97| 欧美日韩国产一区二区三区不卡| 亚洲欧美日韩在线观看a三区| 亚洲精品黄色| 日韩成人三级| 五月天综合网站| 国产日韩一区二区三区在线播放| 成人影视亚洲图片在线| 美女91精品| 天堂av在线| 欧美日韩视频免费看| 久久国产亚洲| 精品国产成人| 激情黄产视频在线免费观看| 999久久久精品国产| 九九综合九九| 日韩av网站在线观看| 国产麻豆久久| 久久av综合| 免费人成网站在线观看欧美高清| 国产剧情一区| 天堂va蜜桃一区二区三区| 成人在线免费观看网站| 中文字幕av亚洲精品一部二部| 啪啪国产精品| 国产一区2区| 免费日韩一区二区三区| 日韩精品免费一区二区夜夜嗨| 亚洲不卡av不卡一区二区| 国产一区二区三区视频在线| 69精品国产久热在线观看| 久久国产精品久久w女人spa| 影视先锋久久| 日韩欧美不卡| 亚洲精品在线影院| 国产精品nxnn| 国产精品亚洲欧美日韩一区在线| 天堂成人免费av电影一区| 亚洲免费婷婷| 欧美一区=区| 国产视频亚洲| 最新国产精品| 欧美日韩18| 精品久久电影| 亚洲精品国产嫩草在线观看| 亚洲黄色网址| 99国产精品一区二区| 欧美福利一区| 99成人在线视频| 亚洲一区日韩在线| 国产精品日韩久久久| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩一区二区免费看| 蜜桃视频一区二区| 国产毛片久久久| 免费福利视频一区二区三区| 欧美在线网站| 日韩精品一区二区三区av | 日韩在线二区| 欧美特黄a级高清免费大片a级| av成人国产| 欧美国产中文高清| 精品三级国产| 欧美大黑bbbbbbbbb在线| 国产一级久久| 卡一卡二国产精品| 美女少妇全过程你懂的久久| 日韩精品社区| 九九色在线视频| 伊人国产精品| 美女av在线免费看| 久久国产福利| 激情黄产视频在线免费观看| 在线精品亚洲| 国产精品xx| 日韩和欧美一区二区| 蜜桃视频在线网站| 免费看的黄色欧美网站| 国产成人久久精品麻豆二区| 久久国产精品亚洲77777| 免费亚洲婷婷| 亚洲精品在线二区| 欧美sss在线视频| 国产精品hd| 综合干狼人综合首页| 肉色欧美久久久久久久免费看| 蜜桃av一区二区| 91精品一区国产高清在线gif| 欧美日本二区| 在线国产日韩| 国产免费成人| 亚洲高清不卡| 精品国产a一区二区三区v免费| 久久午夜视频| 亚洲激情偷拍| 国户精品久久久久久久久久久不卡| 国产情侣一区在线| 综合一区av| 亚洲一区导航| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美不卡在线| 欧美高清一区| 亚洲综合欧美| 丝瓜av网站精品一区二区| 五月天久久久| 亚洲免费中文| 久久亚洲视频| 不卡一区综合视频| 亚洲一区二区动漫| 日韩中文字幕av电影| 快she精品国产999| 免费视频一区二区| 日本亚洲欧美天堂免费| 蜜桃一区二区三区在线观看| 综合一区av| 国产亚洲精品美女久久| 国产精品蜜月aⅴ在线| 久久国产视频网| 精品国产不卡一区二区| 日韩精品久久久久久久电影99爱| 吉吉日韩欧美| 亚洲自拍另类| 亚洲免费一区三区| 国产精品亚洲综合久久| 精品国产午夜| 欧美二区视频| 欧美另类中文字幕| 91欧美国产| 久久国产88| 国产精品第十页| 亚洲午夜黄色| 91九色综合| 欧美精选一区二区三区| 欧美中文高清| 激情自拍一区| 国产精品v亚洲精品v日韩精品| 国产成人精品亚洲线观看| 97se综合| 日韩三级一区| 日韩欧美自拍| 日韩精品一区二区三区中文字幕| 色乱码一区二区三区网站| 首页欧美精品中文字幕| 美女高潮久久久| 美女日韩在线中文字幕| 国产精品高颜值在线观看| 在线一区二区三区视频| 麻豆视频在线看| 日韩精品国产欧美| 成人影视亚洲图片在线| 国产调教一区二区三区| 老牛国产精品一区的观看方式| 久久久影院免费| 国产精品尤物| 亚洲性视频在线| 99久久99视频只有精品| 国产精品久久久久9999高清| 蜜臀av性久久久久蜜臀aⅴ四虎| 成人精品国产亚洲| 国产精品久久久久久久久久齐齐| 亚洲综合国产| 国产一级一区二区| 亚洲精品888| 99久久亚洲精品蜜臀| 国产v日韩v欧美v| 你懂的亚洲视频| 欧美日韩中文| 日韩欧美久久| 少妇精品在线| 亚洲精品国产精品粉嫩| 亚洲天堂av资源在线观看| 欧美日韩激情| 中文欧美日韩| 爽好多水快深点欧美视频| 免费不卡中文字幕在线| 尤物网精品视频|