【问题标题】:access an ftp directory with ftplib python使用 ftplib python 访问 ftp 目录
【发布时间】:2018-05-07 09:07:28
【问题描述】:

我正在尝试使用 python 脚本访问 ftp 库 图书馆的地址是这样的:ftp://XX.XXX.XXX.XXX/

所以我使用了来自pythonforbegginers 的代码:

import ftplib
ftp = ftplib.FTP('ftp.sunet.se', 'anonymous', 'anonymous@sunet.se')
print "File List: "
files = ftp.dir()
print files

我试着用它来适应我的情况:

ftp = ftplib.FTP('ftp.xx.xxx.xxx.xxx/','maklit' ,'maklit@xx.xxx.xxx.xxx/')
print ("File List: ")
files = ftp.dir()
print (files)

但我得到了错误: “对于 _socket.getaddrinfo 中的资源(主机、端口、家庭、类型、原型、标志): socket.gaierror:[Errno 11004] getaddrinfo 失败 "

我如何让它工作?我究竟做错了什么? 谢谢。

【问题讨论】:

  • 第一个参数可能是主机名或 IP 地址。您似乎传递了一个奇怪/无效的网址。
  • 首先尝试连接一个 ftp 客户端。许多浏览器都可以充当 ftp 客户端,并且大多数操作系统(包括 Windows)都带有 CLI ftp 客户端。
  • 首先不要这样做: ftplib.FTP('ftp.host.com' , 'user', 'pase') dont add user and Pass in ftplib.FTP 那是第一个错误,对于登录使用 ftp.login('user', 'pass') 不像你那样,第三,发送命令,使用 cmd = ftp.sendcmd('dir') 然后 print(ftplib.parse257(cmd)) ,谢谢

标签: python ftp ftplib


【解决方案1】:

您的错误是主机名'ftp.xx.xxx.xxx.xxx/' 没有意义。 'ftp.' 表示它是一个类似于“meta.stackoverflow.com”的主机名,但随后您继续使用 IP 地址,该地址必须是数字和“.”,没有字符。这意味着,您的 IP 地址被解释为主机名,这将不起作用。只使用不带'ftp.' 的IP 地址:

ftp = ftplib.FTP('xx.xxx.xxx.xxx')

然后你通过登录方法登录

print(ftp.login("your username", "your password"))

然后您应该会看到一条消息“登录成功”。如果出现类似“登录身份验证失败”的信息,则说明您的用户名和密码错误。

【讨论】:

  • 似乎可以修复它,但现在我得到“ raise error_perm(resp) ftplib.error_perm: 530 Login or password wrong!
  • 我尝试了很多组合。当我查看目录的首选项时,请参阅“maklit@xx.xxx.xxx.xxx”。什么是 maklit?用户?密码?我尝试将其用作通行证和用户。假设我的 Windows 用户的名称是 ETC1。我在登录中输入了什么?它尝试了 ftp.login('ETC1', 'maklit') 但没有成功。
  • 需要说我只需单击两次就可以在资源管理器中输入此 ftp 目录。
  • @Adam 我编辑了。如果你点击两次就可以进入目录,你曾经登录过吗?你用了什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
  • 2016-06-19
  • 2013-06-27
相关资源
最近更新 更多