Ошибка входа в систему с ftplib, но не с Paramiko? - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь подключиться к хосту с ftplib , но каждый раз, когда он говорит -

File "E:\NTUC\virtualenv\lib\ftplib.py", line 152, in connect
source_address=self.source_address)
File "E:\NTUC\virtualenv\lib\socket.py", line 724, in create_connection
raise err
File "E:\NTUC\virtualenv\lib\socket.py", line 713, in create_connection
sock.connect(sa)
ConnectionRefusedError: [WinError 10061] No connection could be made because 
the target machine actively refused it

Но с теми же учетными данными, если я использую Paramiko , он успешно соединяет меня.

Мой код ftplib:

import ftplib
f = ftplib.FTP()
f.connect("HOST")
f.login("USER_NAME", "PASSWORD")
ls = []
f.retrlines('MLSD', ls.append)
for entry in ls:
    print(entry)

Мой код Paramiko:

import paramiko
transport = paramiko.Transport((HOST, PORT))
transport.connect(username=USER_NAME, password=PASSWORD)
sftp = paramiko.SFTPClient.from_transport(transport)

1 Ответ

0 голосов
/ 28 июня 2018

Paramiko - это библиотека SSH / SFTP. ftplib - это библиотека FTP. Эти протоколы совершенно разные.

Тот факт, что вы можете подключиться к Paramiko, фактически означает, что вы определенно не можете подключиться к одному и тому же порту host + с помощью ftplib. И вы, скорее всего, вообще не сможете подключиться к хосту с помощью ftplib, даже если вы попробуете порт FTP (что вы, похоже, пытаетесь), так как серверы обычно предлагают FTP или SFTP, но не оба .

В любом случае успешное соединение с SFTP (Paramiko) вообще ничего не говорит о FTP (ftplib).

...