我有一个程序将文本文件发送到ftp服务器。代码是:
def sendBug():
session = ftplib.FTP('ftp://xxxx.xxxx.xxxx.xxxx', " ", " ")
bugfile = open(bugreport.txt, "r")
session.storlines("STOR bugreport.txt", bugfile)
bugfile.close()
session.quit()
然而,当我运行该脚本时,我得到的是这样的东西:
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1470, in __call__
return self.func(*args)
File "C:\Users\Nitro\Desktop\py2exe stuff\school firewall ui.py", line 46, in getnews
ftp= ftplib.FTP(server)
File "C:\Python27\lib\ftplib.py", line 120, in __init__
self.connect(host)
File "C:\Python27\lib\ftplib.py", line 135, in connect
self.sock = socket.create_connection((self.host, self.port), self.timeout)
File "C:\Python27\lib\socket.py", line 553, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno 11004] getaddrinfo failed
任何解决方法?我正在使用IIS托管一个ftp服务器。学校防火墙ui是我的计划。
答案 0 :(得分:2)
不需要"ftp://"
Basiclly gaierror: [Errno 11004] getaddrinfo failed
表示ftp模块无法理解您给他的'ftp://xxxx.xxxx.xxxx.xxxx'
地址 - 主机名。
gaierror
:
对于getaddrinfo()和getnameinfo(),会针对与地址相关的错误引发此异常。附带的值是一对(错误,字符串),表示库调用返回的错误。 string表示由gai_strerror()C函数返回的错误描述。错误值将匹配此模块中定义的一个EAI_ *常量。
您正在通过ftplib.FTP()
传递主机,用户名和密码(用户和密码都是您的空间)
如果它应该是匿名的,只需使用:
ftp = ftplib.FTP('you address')
ftp.login()
如果仍然无效,请尝试ping您的地址或尝试连接一些已知的FTP以低估问题的位置。
你也可以尝试这个link非常有用
有关python FTP的更多信息,请尝试docs