我试图写一个ftp命令行客户端就像linux二进制文件,但我不能简单地发送一个命令到服务器。
import argparse
from ftplib import FTP
parser = argparse.ArgumentParser()
parser.add_argument('ip')
parser.add_argument('port', type=int)
args = parser.parse_args()
user = str(input('[*] Please insert USER: '))
passwd = str(input('[*] Please insert PASS: '))
ftp = FTP(host=str(args.ip), passwd=passwd)
ftp.connect(host=args.ip, port=args.port)
print(ftp.getwelcome())
while True:
command = str(input('ftp> '))
ftp.sendcmd(command)
并得到以下错误:
Traceback (most recent call last):
File "ftp.py", line 18, in <module>
ftp.sendcmd(command)
File "/usr/lib/python3.7/ftplib.py", line 273, in sendcmd
return self.getresp()
File "/usr/lib/python3.7/ftplib.py", line 246, in getresp
raise error_perm(resp)
ftplib.error_perm: 530 Please login with USER and PASS.
我想这是因为服务器在我发送命令之前就关闭了连接。那么,我怎样才能稳定与服务器的连接,直到我想退出?
1条答案
按热度按时间dxxyhpgq1#
我认为这个错误是关于你的用户权限和目录权限。你使用匿名用户吗?检查一下。