【问题标题】:Connecting to an FTP server on IPv6 in python在 python 中连接到 IPv6 上的 FTP 服务器
【发布时间】:2013-06-20 08:46:15
【问题描述】:
这就是我以编程方式连接到 FTP 服务器的方式:
Python代码
ftp = ftplib.FTP (settings.FTP_IP)
ftp.login (settings.FTP_LOGIN, settings.FTP_PASS)
# ...
# 这里我上传文件到服务器
# ...
ftp.quit()
但就像 IPv4 一样。但是如何通过 IPv6 连接到服务器呢?
我看了一些liby,试图将它们放入shell,连接,但是,它不起作用。
告诉我是否有人处理过这个问题。
【问题讨论】:
标签:
python
ftp
ipv6
ftplib
【解决方案1】:
看了ftplib.py的代码后,在我看来,该代码已经为IPv6做好了准备。
图书馆知道EPSV 和EPRT 并在适当的时候使用它们。
例如,
def makepasv(self):
if self.af == socket.AF_INET:
host, port = parse227(self.sendcmd('PASV'))
else:
host, port = parse229(self.sendcmd('EPSV'), self.sock.getpeername())
return host, port
表明它会根据我们使用的 IP 版本发送PASV 或EPSV。