In questo articolo vedremo verificare se un server FTP è online con Python.
Possiamo implementare la seguente funzione:
import ftplib
def check_if_ftp_host_is_up(host, timeout=5):
try:
ftp = ftplib.FTP(host, timeout=timeout)
ftp.login()
ftp.quit()
return True
except ftplib.all_errors:
return False
La prima riga di codice import ftplib
importa il modulo ftplib
, che fornisce funzionalità per la comunicazione con server FTP.
La funzione check_if_ftp_host_is_up
prende due argomenti: host
e timeout
(impostato a 5 secondi per impostazione predefinita). L'argomento host
è l'indirizzo del server FTP che si desidera verificare.
All'interno della funzione, viene utilizzato un blocco try-except
per gestire eventuali eccezioni che potrebbero verificarsi durante la connessione al server FTP.
All'interno del blocco try
, la funzione crea un'istanza della classe ftplib.FTP
passando l'indirizzo host
e il timeout specificato. Questo crea un oggetto FTP per comunicare con il server FTP.
Successivamente, viene chiamato il metodo login()
dell'oggetto FTP, che tenta di effettuare il login al server FTP. Se il login avviene con successo, significa che il server è raggiungibile e in funzione.
Dopo il login, viene chiamato il metodo quit()
per chiudere la connessione con il server FTP.
Infine, viene restituito True
per indicare che il server FTP è raggiungibile e funzionante.
Se si verifica un'eccezione di tipo ftplib.all_errors
(che rappresenta qualsiasi errore nel modulo ftplib
), viene eseguito il blocco except
. In questo caso, viene restituito False
per indicare che il server FTP non è raggiungibile o non funzionante.