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:
import socket: Questa linea importa il modulosocket, che fornisce una serie di funzioni e classi per la comunicazione di rete.def check_if_ssh_is_up(host, port):: Questa linea definisce la funzionecheck_if_ssh_is_upche accetta due argomenti:hosteport. L'argomentohostindica l'indirizzo IP o il nome del dominio del server SSH, mentre l'argomentoportspecifica il numero di porta su cui il server SSH è in ascolto.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM): Questa linea crea un oggetto di tiposocketchiamatosockutilizzandosocket.AF_INETcome primo argomento, che indica l'utilizzo di IPv4 per la comunicazione, esocket.SOCK_STREAMcome secondo argomento, che indica che sarà utilizzato un socket di tipo TCP.result = sock.connect_ex((host, port)): Questa linea chiama il metodoconnect_exsull'oggetto socketsock, passando una tupla contenentehosteportcome argomento. Il metodoconnect_extenta 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.return result == 0: Questa linea restituisceTrueseresultè uguale a 0, indicando che la connessione è stata stabilita con successo. Altrimenti, restituisceFalse.