Python: verificare se il servizio SSH è attivo

In questo articolo vedremo verificare se il servizio SSH è attivo con Python.

Possiamo implementare la seguente funzione:


import socket

def check_if_ssh_is_up(host, port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    result = sock.connect_ex((host, port))
    return result == 0

Questa funzione utilizza il modulo socket per controllare se un server SSH è raggiungibile su un determinato host e porta. Ecco la spiegazione riga per riga:

  1. import socket: Questa linea importa il modulo socket, che fornisce una serie di funzioni e classi per la comunicazione di rete.

  2. def check_if_ssh_is_up(host, port):: Questa linea definisce la funzione check_if_ssh_is_up che accetta due argomenti: host e port. L'argomento host indica l'indirizzo IP o il nome del dominio del server SSH, mentre l'argomento port specifica il numero di porta su cui il server SSH è in ascolto.

  3. sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM): Questa linea crea un oggetto di tipo socket chiamato sock utilizzando socket.AF_INET come primo argomento, che indica l'utilizzo di IPv4 per la comunicazione, e socket.SOCK_STREAM come secondo argomento, che indica che sarà utilizzato un socket di tipo TCP.

  4. result = sock.connect_ex((host, port)): Questa linea chiama il metodo connect_ex sull'oggetto socket sock, passando una tupla contenente host e port come argomento. Il metodo connect_ex tenta di stabilire una connessione al server SSH specificato. Restituisce un codice di errore che rappresenta il risultato della connessione. Se il valore restituito è 0, significa che la connessione è stata stabilita con successo.

  5. return result == 0: Questa linea restituisce True se result è uguale a 0, indicando che la connessione è stata stabilita con successo. Altrimenti, restituisce False.

Torna su