gpt4 book ai didi

python - 通过http代理连接到FTP服务器

转载 作者:太空宇宙 更新时间:2023-11-04 04:47:49 27 4
gpt4 key购买 nike

我的代码亲爱的给了我错误:socket.gaierror: [Errno 11001] getaddrinfo failed 当调用方法 ftp.connect() 时。

我的问题是:为什么我可以连接到 google.com,但在连接到 ftp 服务器时出现错误?以及如何从 http 代理后面连接到 ftp 服务器?

import ftplib
import urllib.request

# ftp settings
ftpusername = 'abc'
ftppassword = 'xyz'
ftp_host = 'host'
ftp_port = 1234

proxy_url = 'http://username:password@host:port'
proxy_support = urllib.request.ProxyHandler({'http': proxy_url})
opener = urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener)

#url works ok
f = urllib.request.urlopen('http://www.google.com/')
print(f.read(500))

# Connecting to ftp fails
with ftplib.FTP() as ftp:
ftp.connect(host=ftp_host, ftp_port=port)
ftp.login(user=ftpusername, passwd=ftppassword)
print(ftp.getwelcome())
print(ftp.nlst())
ftp.close()
ftp.quit()

最佳答案

您可以尝试将 FTP url 直接发送到 HTTP 代理。

 f = urllib.request.urlopen('ftp://abc:xyz@host/my-file.ext')

同时检查其他 FTP 客户端或浏览器是否成功与 FTP 服务器交互。如果他们这样做,请使用像 Wireshark 这样的网络嗅探器并观察它们如何与 FTP 服务器通信。

关于python - 通过http代理连接到FTP服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49138118/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com