2013-05-14 30 views
-1

作爲一個蟒蛇新手我想玩,並創建我的兩臺電腦之間的FTP連接。 (一個作爲客戶端,另一個作爲服務器)。每一件事情都很好,但只有當我在同一個本地IP地址的網絡上使用它們時,我的問題是:如何將我的計算機用作FTP服務器,並通過不同網絡訪問另一臺計算機? (使用公共IP地址)FTP python驅動的服務器

代碼我的服務器計算機上:

from pyftpdlib.authorizers import DummyAuthorizer 
from pyftpdlib.handlers import FTPHandler 
from pyftpdlib.servers import FTPServer 

authorizer = DummyAuthorizer() 
authorizer.add_user("username", "password", "C:\\Users\\someone\\somewhere\\FTP", perm="rl")  

handler = FTPHandler 
handler.authorizer = authorizer 
server = FTPServer(("192.162.1.101", 21), handler) 
server.serve_forever() 

,我用代碼來獲取文件:

import ftplib 
import shutil 

def download (ftp, directory, file): 
f = open(file,"wb") 
data = ftp.retrbinary("RETR %s" % file,f.write) 
f = open(file, "r") 
shutil.copy2(f,"D:\\Users\\user-pc\\Desktop") 
f.close() 


ftp = ftplib.FTP("192.162.1.101","username", "password") 

download(ftp, "FTP", "1.jpg") 
raw_input() 
+1

正如Burhan所說,你的代碼看起來沒問題。您需要在路由器上轉發相應的FTP端口。在這裏尋求幫助:http://portforward.com/這個網站有一個路由器列表,找到你的並按照說明轉發端口。 – b10hazard 2013-05-14 16:29:37

回答

1

這不是蟒蛇有關。你需要從你的路由器轉發一個端口(選擇1024以上的端口)到端口21192.162.1.101;然後將您的客戶端連接到您的ISP提供的公共IP。

+0

Thx幫忙:) – 2013-05-16 08:30:51