Python ftplib - 通过具有自定义端口的代理连接
Python ftplib - connecting through a proxy with custom port
那么我的问题是,如何修改连接字符串以满足我的防火墙所期望的细节?
这个有点复杂。
- 我正在通过企业代理进行连接。我可以使用 Filezilla 成功连接。更多信息如下。
- 代理有一个我需要连接的自定义端口:
8021
。
我不是 ftplib 高手,但这是我到目前为止所做的:
import ftplib
from dateutil import parser
host_proxy = 'our.proxy.internal'
host_port = 8021
ftp_user = 'username'
ftp_pass = 'password'
ftp_host = 'ftp.thesite.com'
u = "user %s@%s" % (ftp_user, ftp_host)
p = "pass %s" % (ftp_pass)
print(u)
print(p)
ftp = ftplib.FTP(host_proxy, host_port, u, p)
此设置失败并出现错误:ConnectionRefusedError No connection could be made because the target machine actively refused it.
这是进步!
Filezilla 自定义 FTP 代理设置如下:
user %u@%h
pass %p
其中:
%u = ftp_user
%h = ftp_host
%p = ftp_pass
Proxy Host = our.proxy.internal
显然,分成两行很重要。
这适用于发布的场景:
import ftplib
from dateutil import parser
#proxy details
host_proxy = 'organisation.silly.proxy'
host_port = 8021
#ftp details
ftp_user = 'ftpusername'
ftp_pass = 'ftppassword'
ftp_host = 'ftp.thesite.com'
ftp_loginstring = ftp_user + "@" + ftp_host
ftp = FTP()
ftp.set_debuglevel(1)
ftp.connect(host_proxy, host_port)
ftp.login(user=ftp_loginstring, passwd=ftp_pass)
print("Logged in ok")
那么我的问题是,如何修改连接字符串以满足我的防火墙所期望的细节?
这个有点复杂。
- 我正在通过企业代理进行连接。我可以使用 Filezilla 成功连接。更多信息如下。
- 代理有一个我需要连接的自定义端口:
8021
。
我不是 ftplib 高手,但这是我到目前为止所做的:
import ftplib
from dateutil import parser
host_proxy = 'our.proxy.internal'
host_port = 8021
ftp_user = 'username'
ftp_pass = 'password'
ftp_host = 'ftp.thesite.com'
u = "user %s@%s" % (ftp_user, ftp_host)
p = "pass %s" % (ftp_pass)
print(u)
print(p)
ftp = ftplib.FTP(host_proxy, host_port, u, p)
此设置失败并出现错误:ConnectionRefusedError No connection could be made because the target machine actively refused it.
这是进步!
Filezilla 自定义 FTP 代理设置如下:
user %u@%h
pass %p
其中:
%u = ftp_user
%h = ftp_host
%p = ftp_pass
Proxy Host = our.proxy.internal
显然,分成两行很重要。
这适用于发布的场景:
import ftplib
from dateutil import parser
#proxy details
host_proxy = 'organisation.silly.proxy'
host_port = 8021
#ftp details
ftp_user = 'ftpusername'
ftp_pass = 'ftppassword'
ftp_host = 'ftp.thesite.com'
ftp_loginstring = ftp_user + "@" + ftp_host
ftp = FTP()
ftp.set_debuglevel(1)
ftp.connect(host_proxy, host_port)
ftp.login(user=ftp_loginstring, passwd=ftp_pass)
print("Logged in ok")