【问题标题】:Python ftplib - connecting through a proxy with custom portPython ftplib - 通过具有自定义端口的代理连接
【发布时间】:2020-12-18 03:27:43
【问题描述】:

那么我的问题是,如何修改连接字符串以满足我的防火墙所期望的细节?

这个问题有点复杂。

  1. 我从企业代理后面连接。我可以使用 Filezilla 成功连接。更多信息如下。
  2. 代理有一个我需要连接的自定义端口: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

显然,分成两行很重要。

【问题讨论】:

    标签: python proxy ftplib


    【解决方案1】:

    这适用于发布的场景:

    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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-16
      • 2013-10-24
      • 2015-02-21
      • 2021-09-23
      • 2020-09-27
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多