Python FTP应用中的代理
我正在用Python的ftplib开发一个FTP客户端。请问我该怎么给它添加代理支持呢?我发现大多数FTP应用都有这个功能。我特别想知道如何支持SOCKS代理,还有其他类型的代理,比如FTP和HTTP(用HTTP代理来处理FTP程序可行吗?)
有没有什么想法可以实现这个呢?
6 个回答
3
我之前也遇到过同样的问题,需要用到ftplib模块(不想把我所有的脚本都改成用URLlib2)。
我写了一个脚本,可以在套接字层上安装透明的HTTP隧道(ftplib使用的就是这个层)。
现在,我可以透明地进行HTTP上的FTP操作了!
你可以在这里找到这个脚本: http://code.activestate.com/recipes/577643-transparent-http-tunnel-for-python-sockets-to-be-u/
4
你可以在 urllib2
中使用 ProxyHandler。
ph = urllib2.ProxyHandler( { 'ftp' : proxy_server_url } )
server= urllib2.build_opener( ph )
8
根据这个来源。
这要看你用的代理服务器,但一个常见的方法是先连接到代理服务器,然后再用目标服务器的用户名和密码。
比如说,对于ftp.example.com:
Server address: proxyserver (or open proxyserver from with ftp)
User: anonymous@ftp.example.com
Password: password
在Python代码中:
from ftplib import FTP
site = FTP('my_proxy')
site.set_debuglevel(1)
msg = site.login('anonymous@ftp.example.com', 'password')
site.cwd('/pub')