婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python一秒搭建FTP服務(wù)器

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

熱門標(biāo)簽:陜西金融外呼系統(tǒng) 哈爾濱ai外呼系統(tǒng)定制 海南400電話如何申請 公司電話機器人 廣告地圖標(biāo)注app 激戰(zhàn)2地圖標(biāo)注 白銀外呼系統(tǒng) 唐山智能外呼系統(tǒng)一般多少錢 騰訊外呼線路

一、了解FTP服務(wù)器

  • FTP(文件傳輸協(xié)議),運行在tcp洗衣上,使用兩個端口,即數(shù)據(jù)端口和命令端口,也稱之為控制端口。默認(rèn)情況下,20是數(shù)據(jù)端口,21是控制端口。
  • FTP有兩種傳輸模式:主動模式和被動模式

(1) 主動模式:客戶端首先從任意的非特殊端口n(大于1023的端口,也是客戶端的命令端口)連接FTP服務(wù)器的命令端口(默認(rèn)是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”。

(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ù)

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

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

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

1.安裝 pyftpdlib 模塊

C:\Users\LTP> pip3 install pyftpdlib

C:\Users\LTP> python3 -m pyftpdlib -p 21

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

C:\Users\LTP> 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:\Users\LTP> dir E:\PycharmProjects\untitled\project01\venv\Lib\site-packages\pyftpdlib
2021/05/15  17:50    DIR>          .
2021/05/15  17:50    DIR>          ..
2017/12/30  16:44            35,246 authorizers.py
2021/05/15  17:49            24,798 filesystems - 副本.py
2021/05/15  17:49            24,798 filesystems.py
2019/10/24  16:26           144,635 handlers - 副本.py
2019/10/24  16:26           144,635 handlers.py
2017/12/30  16:44            36,769 ioloop.py
2019/10/24  16:26             5,823 log.py
2019/10/24  16:26             3,844 prefork.py
2019/10/24  16:26            21,658 servers.py
2021/05/15  17:45    DIR>          test
2019/10/24  16:26               774 _compat.py
2019/10/24  16:28             2,845 __init__.py
2018/04/26  18:41             4,879 __main__.py
2021/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 DummyAuthorizer
from pyftpdlib.handlers import FTPHandler,ThrottledDTPHandler
from pyftpdlib.servers import FTPServer
from pyftpdlib.log import LogFormatter
import 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 = FTPHandler
handler.authorizer = authorizer

# 6.添加被動端口范圍
handler.passive_ports = range(2000,20033)

# 7.上傳下載的速度設(shè)置
dtp_handler = ThrottledDTPHandler
dtp_handler.read_limit = 300 * 1024          # 300 kb/s
dtp_handler.write_limit = 300 * 1024         # 300 kb/s
handler.dtp_handler = dtp_handler

# 8.監(jiān)聽ip和端口 , linux里需要root用戶才能使用21端口
server = FTPServer(('0.0.0.0', 21), handler)

# 9.最大連接數(shù)
server.max_cons = 150
server.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驗證
使用正常,認(rèn)證正常

三、編寫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.登入ftp
ftp = 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.txt
ftp.retrbinary('RETR node.txt', open('node.txt', 'wb').write)

# 上傳文件ftpserver.py
ftp.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ù)器的詳細(xì)內(nèi)容,更多關(guān)于python FTP服務(wù)器的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python實現(xiàn)從ftp服務(wù)器下載文件
  • Python 獲取ftp服務(wù)器文件時間的方法
  • 使用python實現(xiàn)快速搭建簡易的FTP服務(wù)器
  • Python實現(xiàn)的FTP通信客戶端與服務(wù)器端功能示例
  • Python實現(xiàn)基于多線程、多用戶的FTP服務(wù)器與客戶端功能完整實例
  • python實現(xiàn)FTP服務(wù)器服務(wù)的方法

標(biāo)簽:常德 黔西 鷹潭 黑龍江 益陽 四川 上海 惠州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python一秒搭建FTP服務(wù)器》,本文關(guān)鍵詞  python,一秒,搭建,FTP,服務(wù)器,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python一秒搭建FTP服務(wù)器》相關(guān)的同類信息!
  • 本頁收集關(guān)于python一秒搭建FTP服務(wù)器的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    av欧美精品.com| 91尤物视频在线观看| 成人免费高清在线观看| 欧美夫妻性生活| 中文字幕欧美激情一区| 日韩国产精品久久| 一本色道久久综合亚洲91 | 色综合一区二区| 欧美大片在线观看一区| 亚洲精品中文在线观看| 成人晚上爱看视频| 日韩女同互慰一区二区| 亚洲国产精品一区二区www在线| 国产精品资源在线观看| 日韩免费电影网站| 日韩精品高清不卡| 91成人免费电影| 亚洲理论在线观看| 成人av影视在线观看| 久久新电视剧免费观看| 奇米精品一区二区三区在线观看一| 色999日韩国产欧美一区二区| 国产精品理论片在线观看| 国产一区啦啦啦在线观看| 亚洲乱码精品一二三四区日韩在线| 国产午夜精品久久久久久免费视 | 中文字幕亚洲一区二区va在线| 久久91精品国产91久久小草| 91 com成人网| 午夜电影网一区| 欧美喷水一区二区| 亚洲一区二区三区免费视频| 精品视频全国免费看| 性欧美大战久久久久久久久| 欧美日韩精品一区二区在线播放| 有码一区二区三区| 欧美日韩国产综合久久| 午夜精品久久久| 日韩欧美在线综合网| 久久99精品网久久| 久久久久久久性| 成人小视频免费在线观看| 国产精品伦一区| 欧美无砖砖区免费| 日韩精彩视频在线观看| 日韩亚洲欧美高清| 国产精品亚洲人在线观看| 国产欧美日韩麻豆91| 色狠狠一区二区三区香蕉| 无码av免费一区二区三区试看 | 久久精品999| 国产色产综合产在线视频| hitomi一区二区三区精品| 亚洲精品成人精品456| 在线播放91灌醉迷j高跟美女| 日本不卡一二三| 国产日韩欧美精品一区| 91免费国产在线观看| 日本欧美久久久久免费播放网| 精品国产髙清在线看国产毛片| 岛国精品一区二区| 午夜精品福利视频网站| 久久精品视频免费观看| 在线观看亚洲精品视频| 麻豆国产91在线播放| 中文av一区二区| 欧美日韩成人一区二区| 国产中文字幕精品| 亚洲国产视频在线| 久久亚洲私人国产精品va媚药| 色婷婷国产精品久久包臀| 久久精品久久精品| 亚洲人成精品久久久久| 欧美精品色一区二区三区| 国产高清视频一区| 亚洲成人一二三| 国产精品国产三级国产aⅴ中文 | 欧美视频一区二区| 精品一区二区三区日韩| 亚洲一区二三区| 欧美—级在线免费片| 欧美电影一区二区三区| 99久久精品国产一区二区三区| 青青青伊人色综合久久| 一区二区三区四区在线| 久久久亚洲精华液精华液精华液| 欧美日韩一区二区三区四区| 国产99精品视频| 久久成人羞羞网站| 人人爽香蕉精品| 亚洲综合在线观看视频| 中文字幕第一区第二区| 精品国产乱码久久久久久蜜臀| 欧美在线观看18| 91性感美女视频| 成人免费看黄yyy456| 久久激情综合网| 日韩av不卡一区二区| 午夜精品久久久久久不卡8050| 国产精品国产三级国产aⅴ无密码| 欧美tk—视频vk| 欧美一区二区三区视频免费 | 日本一区二区三区在线观看| 欧美一区二区三区影视| 欧美日韩免费在线视频| 欧美在线观看视频一区二区| 91福利在线免费观看| 色综合久久88色综合天天| av动漫一区二区| www.欧美色图| av一区二区不卡| 99综合影院在线| 91在线国产福利| 成人h动漫精品一区二| 成人精品国产一区二区4080| 国产不卡在线播放| 国产成人自拍网| 国产91精品精华液一区二区三区| 国产精品伊人色| 成人晚上爱看视频| 91色视频在线| 在线观看日韩精品| 欧美日韩国产免费一区二区| 欧美日本国产视频| 精品国产乱码久久久久久蜜臀 | 成人三级伦理片| av激情成人网| 欧美日韩激情在线| 精品国产乱码久久| 国产欧美日本一区视频| 国产精品高清亚洲| 亚洲3atv精品一区二区三区| 蜜桃一区二区三区在线| 国产经典欧美精品| 在线观看日韩精品| 欧美va天堂va视频va在线| 久久九九久久九九| 亚洲三级视频在线观看| 五月综合激情婷婷六月色窝| 蜜臀av亚洲一区中文字幕| 国产成人综合视频| 欧美怡红院视频| 欧美r级在线观看| 国产精品国模大尺度视频| 五月天一区二区三区| 国产很黄免费观看久久| 欧美三级蜜桃2在线观看| 精品久久久三级丝袜| 最新成人av在线| 另类中文字幕网| 日本成人在线看| 成人网在线播放| 欧美在线一二三四区| 欧美刺激午夜性久久久久久久| 国产精品视频免费| 亚洲成人免费影院| 成人免费视频视频在线观看免费| 国产精品久久久久aaaa| 一区二区三区**美女毛片| 麻豆精品国产91久久久久久| 99视频超级精品| 欧美v日韩v国产v| 亚洲精品伦理在线| 国产精品一区二区在线观看网站| 欧美羞羞免费网站| 国产精品美女久久久久aⅴ | 亚洲va欧美va国产va天堂影院| 青青草成人在线观看| 91免费看视频| 欧美国产欧美综合| 极品美女销魂一区二区三区| 欧美日韩午夜在线| 国产欧美日韩在线观看| 国产一区二区三区免费看| 欧美日韩久久不卡| 一区二区三区免费网站| 国产成人av在线影院| 精品国产一区二区三区av性色| 亚洲综合无码一区二区| 粉嫩高潮美女一区二区三区 | 亚洲精品一区在线观看| 久久网站热最新地址| 亚洲第一主播视频| 99re热视频精品| 国产精品无遮挡| 丰满放荡岳乱妇91ww| 国产亚洲成av人在线观看导航 | 国产夜色精品一区二区av| 亚洲一区二区高清| 不卡一区在线观看| 精品久久人人做人人爰| 久久精品国产亚洲一区二区三区| 色狠狠一区二区| 精品国产露脸精彩对白| 午夜精品久久久久久| 在线中文字幕不卡| 亚洲成a人片综合在线| 一本久道久久综合中文字幕| 欧美激情一区三区| 99久久精品国产一区二区三区 |