2013-05-14 53 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