使用Python搭建服務(wù)器公網(wǎng)展示本地電腦文件的操作過程
1.前言
Python作為熱度比較高的編程語言,其語法簡單且語句清晰,而且python有良好的兼容性,可以輕松的和其他編程語言((比如C/C++))建立的模塊連接起來,而且python豐富強大的庫,經(jīng)過封裝可以輕松調(diào)用,因此深受歡迎。
今天我們就嘗試用python,建立一個簡單的http服務(wù)器,用來展示本地電腦上指定的目錄和文件。
2.本地http服務(wù)器搭建
一般來說,Python的簡單http服務(wù)器不依賴Apache、IIS等這些復(fù)雜的服務(wù)器程序,因為其自帶了只需一行命令就能建立http服務(wù)。但相對的,這個簡單http服務(wù)也沒法提供復(fù)雜功能,只能提供相對簡單的目錄服務(wù)。但對于想要學(xué)習和熟悉python,這又是必須進行的一步。
2.1.Python的安裝和設(shè)置
首先,我們需要在本地安裝python程序。Python程序可以在其官網(wǎng)(www.python.org/)找到對應(yīng)操作系統(tǒng)版本下載。筆者使用的是Windows操作系統(tǒng),因此選擇Windows版本下載。
Python下載完成后,直接點擊安裝程序.exe即可進行安裝。同時需要注意的是,在安裝過程中,需要注意勾選 Add python.exe to PATH
選項。
完成python程序的安裝后,我們就可以著手建立python的http服務(wù)器了
2.2.Python服務(wù)器設(shè)置和測試
由于python內(nèi)建了簡單http服務(wù)包,因此對于python來說,只需輸入一行命令,就能輕松打開http服務(wù)。當然,要運行網(wǎng)頁,就需要網(wǎng)頁有顯示內(nèi)容。因此我們可以先建立一個用于存放網(wǎng)頁文件的文件夾。例如筆者在本地電腦的E盤下新建了一個“test”文件夾
接著,以管理員身份運行本地電腦的 命令提示符
界面,并輸入命令轉(zhuǎn)入該文件所存放的硬盤
e:
再轉(zhuǎn)入打算共享的文件夾
cd test
接著輸入命令 啟動http服務(wù)
如果Python版本為2.x,輸入命令
python -m SimpleHTTPServer 8081
如果Python版本為3.x,輸入命令
python -m http.server 8001
其中的8081為打算搭建的服務(wù)器的輸出端口,只要選擇沒有被占用的端口即可。如果出現(xiàn)防火墻的提示信息,只要選擇 允許訪問
即可。
命令行輸入完畢后,python給出反饋 Serving HTTP on 0.0.0.0 port 8081 ...
,就說明我們python的http服務(wù)已經(jīng)成功開啟了,在本地8081端口下。
接著我們在本地電腦上的瀏覽器地址欄中,輸入 localhost:8081
,就能打開打算分享的文件夾下的文件。
能看到這些內(nèi)容,就說明本地電腦上python的http服務(wù)已經(jīng)開啟,并且已經(jīng)可以查閱到這個文件夾下的文件。同樣的,如果我們在這個文件夾下放入網(wǎng)頁文件,也能夠顯示為網(wǎng)頁。
此時在同一局域網(wǎng)下的設(shè)備,只要在瀏覽器中輸入本地電腦的ip地址+端口號(具體格式為192.168.XXX.XXX:端口號),就能顯示出python的網(wǎng)頁。
不過,不能在公共互聯(lián)網(wǎng)訪問的網(wǎng)頁總覺得缺少靈魂,因此我們可以借助cpolar內(nèi)網(wǎng)穿透,創(chuàng)建一條內(nèi)網(wǎng)穿透數(shù)據(jù)隧道,讓我們可以在公共互聯(lián)網(wǎng)條件下,訪問到python。
3.cpolar的安裝和注冊
同樣的,我們可以在cpolar的官網(wǎng)(https://www.cpolar.com/)找到對應(yīng)操作系統(tǒng)版本的軟件,筆者這里也是選擇Windows版本。
Cpolar軟件下載完成后,將壓縮包解壓,并雙擊其中的 .msi文件
,即可自動進行安裝,我們只要一路點擊 Next
即可。
由于cpolar會為每個用戶創(chuàng)建獨立的數(shù)據(jù)隧道,并輔以用戶密碼和token碼保證數(shù)據(jù)安全,因此我們在使用cpolar之前,需要進行用戶注冊。注冊過程也非常簡單,只要在cpolar主頁右上角點擊 用戶注冊
,在注冊頁面填入必要信息,就能完成注冊。
3.1 Cpolar云端設(shè)置
完成cpolar的安裝和注冊后,我們就可以著手使用cpolar,創(chuàng)建一條內(nèi)網(wǎng)穿透數(shù)據(jù)隧道,將本地電腦的python網(wǎng)頁與公共互聯(lián)網(wǎng)連接起來。需要注意的是,cpolar免費版的數(shù)據(jù)隧道每24小時重置一次。筆者并不想每天進行重置數(shù)據(jù)隧道設(shè)置,因此將cpolar升級至vip版,以便能獲得能長期穩(wěn)定存在的內(nèi)網(wǎng)穿透數(shù)據(jù)隧道。
要生成長期穩(wěn)定存在的內(nèi)網(wǎng)穿透數(shù)據(jù)隧道,我們要先訪問cpolar官網(wǎng)并登錄,并在“儀表盤”頁面左側(cè),找到并點擊 預(yù)留
按鈕,進入“預(yù)留”頁面。
在“預(yù)留”頁面中,我們可以看到cpolar提供了多種協(xié)議的數(shù)據(jù)隧道保留項目。而python服務(wù)器是http協(xié)議,因此我們找到 保留二級子域名
欄位。當然,如果已經(jīng)向域名供應(yīng)商購買了自己的域名的,也可以選擇“保留自定義域名”欄位。
在“保留二級子域名”欄位,我們需要對打算保留的二級子域名進行信息設(shè)置,而這些設(shè)置的信息,也會成為我們在公共互聯(lián)網(wǎng)訪問本地python服務(wù)器的隧道入口(公共互聯(lián)網(wǎng)地址的一部分)。具體需要設(shè)置的信息為:
地區(qū) :服務(wù)器所在區(qū)域,就近選擇即可
二級域名 會最終出現(xiàn)在生成的公共互聯(lián)網(wǎng)地址中,作為網(wǎng)絡(luò)地址的標識之一
描述 可以看做這條數(shù)據(jù)隧道的描述,能夠與其他隧道區(qū)分開即可
輸入這幾項設(shè)置后,就可以點擊右側(cè)的 保留
按鈕,將這條數(shù)據(jù)隧道保留下來。如果我們不想要這條隧道的入口了,也可以點擊右側(cè)的“x”,輕松將隧道刪除
3.2 Cpolar本地設(shè)置
完成cpolar云端設(shè)置后,我們回到本地電腦上,打開并登錄cpolar客戶端(可以在瀏覽器中輸入localhost:9200直接訪問,也可以在開始菜單中點擊cpolar客戶端的快捷方式)。
點擊客戶端主界面左側(cè) 隧道管理
—— 創(chuàng)建隧道
按鈕,進入本地隧道創(chuàng)建頁面(如果要創(chuàng)建每24小時重置地址的臨時數(shù)據(jù)隧道,可直接在此進行設(shè)置,不必再cpolar官網(wǎng)設(shè)置空白數(shù)據(jù)隧道)。
在這個頁面,同樣需要進行幾項信息設(shè)置,這些信息設(shè)置包括:
隧道名稱 ——可以看做cpolar本地的隧道信息注釋,只要方便我們分辨即可;
協(xié)議 ——tomcat輸出的是web網(wǎng)頁,因此選擇http協(xié)議;
本地地址 ——本地地址即為本地網(wǎng)站的輸出端口號,我們之前設(shè)置了8081為輸出端口,因此這里也填入8081;
域名類型 ——在這個例子中,我們已經(jīng)在cpolar云端預(yù)留了二級子域名的數(shù)據(jù)隧道,因此勾選“二級子域名”(如果預(yù)留的是自定義域名,則勾選自定義域名),并在下一行“Sub Domain”欄中填入預(yù)留的二級子域名,這里我們填入“pythonweb”(如果只是創(chuàng)建臨時數(shù)據(jù)隧道,則直接勾選“隨機域名”,由cpolar客戶端自行生成網(wǎng)絡(luò)地址);
地區(qū) ——與cpolar云端設(shè)置時一樣,我們依照實際所在地就近填寫;
完成這些設(shè)置后,就可以點擊頁面下方的 創(chuàng)建
按鈕,將本地python服務(wù)器網(wǎng)頁與cpolar云端保留的二級子域名連結(jié)起來,生成一條完整的內(nèi)網(wǎng)穿透數(shù)據(jù)隧道。
隧道創(chuàng)建完成后,cpolar會自動跳轉(zhuǎn)至 隧道管理
—— 隧道列表
頁面,在這個頁面看到數(shù)據(jù)隧道的狀態(tài)(是否暢通),或是控制隧道的開啟、關(guān)閉或刪除。如果需要對隧道的信息進行變更,也可以通過這里的“編輯”按鈕進行
4.公網(wǎng)訪問測試
數(shù)據(jù)隧道建立完成后,我們可以點擊cpolar客戶端左側(cè) 狀態(tài)
—— 在線隧道列表
。找到能夠訪問本地python服務(wù)器頁面的公共互聯(lián)網(wǎng)地址。
只要將這個地址輸入瀏覽器地址,就能輕松訪問到本地電腦上的python服務(wù)器頁面。
5.結(jié)語
至此,我們成功的使用python建立一個簡單的服務(wù)器頁面,并且通過cpolar為其創(chuàng)建了一條能夠穿透內(nèi)網(wǎng)屏障的數(shù)據(jù)隧道,將這個python網(wǎng)頁發(fā)布到公共互聯(lián)網(wǎng)上。其實,只要知道網(wǎng)頁(或軟件)的輸出端口號,我們都可以使用cpolar穿透內(nèi)網(wǎng),讓我們在公共互聯(lián)網(wǎng)上訪問到本地的網(wǎng)頁(或軟件)。
到此這篇關(guān)于使用Python搭建服務(wù)器公網(wǎng)展示本地電腦文件的文章就介紹到這了,更多相關(guān)Python搭建服務(wù)器公網(wǎng)展示本地電腦文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python 利用內(nèi)置set函數(shù)對字符串和列表進行去重的方法
今天小編就為大家分享一篇Python 利用內(nèi)置set函數(shù)對字符串和列表進行去重的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python中os.stat().st_size、os.path.getsize()獲取文件大小
本文介紹了使用os.stat()和os.path.getsize()函數(shù)獲取文件大小,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧2025-01-01