Python: verificare se un server FTP è online

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.

Torna su