成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python初學(xué)——網(wǎng)絡(luò)編程之FTP服務(wù)器

TZLLOG / 3322人閱讀

摘要:并可以實(shí)現(xiàn),功能對用戶進(jìn)行磁盤配額,每個(gè)用戶的可用空間不同使用模塊檢查用戶目錄的空間上文件大小,如果大于就不讓傳輸。不允許超過磁盤配額。文件的傳輸過程中顯示精度條。用戶價(jià)值實(shí)現(xiàn)一套自己的服務(wù)端與客戶端。

MYFTP是我寫的模擬FTP服務(wù)端和客戶端交互的程序。通過使用socket去模擬ftp的文件下載與上次兩個(gè)核心功能。并不是使用真實(shí)FTP協(xié)議去實(shí)現(xiàn)。

基本需求

用戶加密認(rèn)證 # hashlib模塊對用戶名密碼進(jìn)行加密。

允許同時(shí)多用戶登錄

每個(gè)用戶有自己的家目錄,且只能訪問自己的家目錄 # 使用用戶名在配置文件的固定目錄中添加用戶名的目錄。并可以實(shí)現(xiàn)ls,dir功能

對用戶進(jìn)行磁盤配額,每個(gè)用戶的可用空間不同 # 使用os模塊檢查用戶目錄的空間+上文件大小,如果大于quota就不讓傳輸。

允許用戶在ftp server上隨意切換目錄 cd功能 記錄用戶輸入的目錄,進(jìn)行目錄的拼接。

允許用戶查看當(dāng)前目錄下文件 ls功能

允許上傳和下載文件,保證文件一致性(md5)

文件傳輸過程中顯示進(jìn)度條

附加功能:支持文件的斷點(diǎn)續(xù)傳。比較客戶端文件與服務(wù)端文件的bytes,如果不一致??蛻舳?、服務(wù)端就使用文件seek方法移動(dòng)光標(biāo)。續(xù)傳。

需求模型 用例名

MYFTP

場景

when:任意時(shí)間

where:任何地點(diǎn)

who:FTP用戶

用例描述

ftp使用用戶名密碼登錄。密碼需要加密認(rèn)證、允許支持多用戶登錄。

每個(gè)用戶有自己的家目錄,所有的訪問必須限制在用戶的家目錄。但在家目錄中創(chuàng)建的目錄可以進(jìn)行目錄切換。

用戶的目錄有磁盤配額。不允許超過磁盤配額。

用戶可以查看當(dāng)前目錄下的文件列表。

用戶可以上傳和下載文件,并且保證文件的一致性。

文件的傳輸過程中顯示精度條。

支持?jǐn)帱c(diǎn)續(xù)傳。

用戶價(jià)值

實(shí)現(xiàn)一套自己的FTP服務(wù)端與客戶端。

約束

暫無

建模設(shè)計(jì) UML圖 順序圖

登錄順序圖

上傳順序圖

程序講解 程序主體

請從github下載后使用
MYFTP
README

目錄結(jié)構(gòu)
+---bin                     # 執(zhí)行程序目錄
|       create_user.py      # 創(chuàng)建用戶程序
|       myftpc.py           # ftp_server啟動(dòng)程序
|       myftps.py           # ftp_client啟動(dòng)程序
|       __init__.py
|
+---conf
|   |   settings.py         # 配置文件
|   |   __init__.py
|   |
|   ---__pycache__
|
+---core
|   |   logger.py           # 日志生成文件
|   |   main.py             # 主程序文件
|   |   __init__.py 
|   |
|   ---__pycache__
|
+---db                      # 數(shù)據(jù)庫目錄
|   ---accounts            # 賬號(hào)表目錄
|---id_user_rs.json         # 賬號(hào)ID與用戶名對應(yīng)關(guān)系
+---file_upload             # ftp文件服務(wù)器目錄
+---lib                     # 類文件
|   |   account.py          # 賬號(hào)類
|   |   db.py               # 數(shù)據(jù)庫類
|   |   myftp_client.py     # ftp客戶端類
|   |   myftp_server.py     # ftp服務(wù)端類
|   |   process.py          # 進(jìn)度條展示類(暫時(shí)未使用)
|   |   __init__.py
|   |
|   ---__pycache__
---log
        __init__.py
環(huán)境

本系統(tǒng)基于python 3.6版本開發(fā)??蛇\(yùn)行在安裝了python 3.6版本的linux或windows系統(tǒng)中。

用法 創(chuàng)建FTP用戶

進(jìn)入bin目錄:

> cd bin

執(zhí)行create_user.py:

> python ./create_user.py
Account:test2       # 用戶名
Password:test2      # 密碼
Home directory(test2):    # 賬號(hào)的根目錄。默認(rèn)為賬號(hào)名稱
Quota(bytes):10           # 賬號(hào)的quota。默認(rèn)為1G

===================ACCOUNT INFO===================
             Account:      test2
             Home Dir:     test2
             Quota:        10
==================================================
啟動(dòng)ftp服務(wù)端

進(jìn)入bin目錄:

> cd bin

執(zhí)行create_user.py:

> python ./myftps.py
啟動(dòng)ftp客戶端

進(jìn)入bin目錄:

> cd bin

執(zhí)行create_user.py:

> python ./myftpc.py

FTP用于登錄:

Name:test2
Password:test2
Account [test2] login successful
ftp>: 
客戶端命令

ls: 查看用戶當(dāng)前目錄的文件和目錄列表

 ftp>: ls
  驅(qū)動(dòng)器 D 中的卷是 新加卷
  卷的序列號(hào)是 020D-6062
 
  D:deploymentMYFTPfile_upload	est2 的目錄
 
 2018/04/16  12:17              .
 2018/04/16  12:17              ..
                0 個(gè)文件              0 字節(jié)
                2 個(gè)目錄 45,605,543,936 可用字節(jié)
 Directory [test2] list successful.
 ftp>: 

pwd: 查看當(dāng)前所在目錄

ftp>: pwd
Directory [] show successful.

mdir: 創(chuàng)建目錄

 ftp>: mdir temp_dir
 Directory [temp_dir] create successful.

cd:切換目錄

ftp>: cd temp_dir
Directory [temp_dir] change successful.

put: 上傳文件-支持?jǐn)帱c(diǎn)續(xù)傳

ftp>: get temp_file.md
Start download -----> temp_file.md
trandata: %s b"test123"
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100% recvsize:7, filesize:7
File [temp_file.md] download successful.

get: 下載文件-支持?jǐn)帱c(diǎn)續(xù)傳

ftp>: put temp_file.md
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]100%
File [temp_file.md] upload successful.

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41553.html

相關(guān)文章

  • python初學(xué)——網(wǎng)絡(luò)編程FTP務(wù)器支持多并發(fā)版本

    摘要:擴(kuò)展支持多用戶并發(fā)訪問與線程池。項(xiàng)目請見初學(xué)網(wǎng)絡(luò)編程之服務(wù)器。不允許超過磁盤配額。該文件是一個(gè)使用模塊編寫的線程池類。這一步就做到了線程池的作用。 對MYFTP項(xiàng)目進(jìn)行升級。擴(kuò)展支持多用戶并發(fā)訪問與線程池。MYFTP項(xiàng)目請見python初學(xué)——網(wǎng)絡(luò)編程之FTP服務(wù)器。 擴(kuò)展需求 1.在之前開發(fā)的FTP基礎(chǔ)上,開發(fā)支持多并發(fā)的功能2.不能使用SocketServer模塊,必須自己實(shí)現(xiàn)多線...

    oysun 評論0 收藏0
  • Python 實(shí)現(xiàn) FTP 弱口令掃描器

    摘要:一項(xiàng)目說明項(xiàng)目簡介本次實(shí)驗(yàn)通過使用實(shí)現(xiàn)一個(gè)弱口令掃描器開始,入門滲透測試技術(shù),實(shí)驗(yàn)涉及協(xié)議原理,庫的使用等知識(shí)點(diǎn)。找到密碼并不會(huì)終止程序,而是會(huì)繼續(xù)掃描其他主機(jī)的弱口令,直到所有的主機(jī)都掃描一遍。 showImg(https://segmentfault.com/img/bVz0PF); 一、項(xiàng)目說明 1.1 項(xiàng)目簡介 本次實(shí)驗(yàn)通過使用 Python 實(shí)現(xiàn)一個(gè) FTP 弱口令掃描器開始...

    cocopeak 評論0 收藏0
  • Python爬蟲實(shí)戰(zhàn)(3):安居客房產(chǎn)經(jīng)紀(jì)人信息采集

    摘要:為了使用各種應(yīng)用場景,該項(xiàng)目的整個(gè)網(wǎng)絡(luò)爬蟲產(chǎn)品線包含了四類產(chǎn)品,如下圖所示本實(shí)戰(zhàn)是上圖中的獨(dú)立爬蟲的一個(gè)實(shí)例,以采集安居客房產(chǎn)經(jīng)紀(jì)人信息為例,記錄整個(gè)采集流程,包括和依賴庫的安裝,即便是初學(xué)者,也可以跟著文章內(nèi)容成功地完成運(yùn)行。 showImg(https://segmentfault.com/img/bVy2Iy); 1, 引言 Python開源網(wǎng)絡(luò)爬蟲項(xiàng)目啟動(dòng)之初,我們就把網(wǎng)絡(luò)爬蟲...

    馬忠志 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<