Python - Telnet

Telnet est un type de protocole réseau qui permet à un utilisateur d'un ordinateur de se connecter à un autre ordinateur qui appartient également au même réseau. La commande telnet est utilisée avec le nom d'hôte, puis les informations d'identification de l'utilisateur sont saisies. Lors d'une connexion réussie, l'utilisateur distant peut accéder aux applications et aux données d'une manière similaire à l'utilisateur régulier du système. Bien entendu, certains privilèges peuvent être contrôlés par l'administrateur du système qui installe et maintient le système.

En Python, telnet est implémenté par le module telnetlib qui a la classe Telnet qui a les méthodes requises pour établir la connexion. Dans l'exemple ci-dessous, nous utilisons également le module getpass pour gérer l'invite de mot de passe dans le cadre du processus de connexion. Nous supposons également que la connexion est établie avec un hôte unix. Les différentes méthodes de la classe telnetlib.Telnet utilisées dans le programme sont expliquées ci-dessous.

  • Telnet.read_until - Lecture jusqu'à ce qu'une chaîne donnée, attendue, soit rencontrée ou jusqu'à ce que les secondes du délai d'attente se soient écoulées.

  • Telnet.write - Ecrit une chaîne dans le socket, doublant tous les caractères IAC. Cela peut bloquer si la connexion est bloquée. Peut soulever socket.error si la connexion est fermée.

  • Telnet.read_all () - Lit toutes les données jusqu'à EOF; bloquer jusqu'à la fermeture de la connexion.

Exemple

import getpass
import telnetlib
HOST = "http://localhost:8000/"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()
tn = telnetlib.Telnet(HOST)
tn.read_until("login: ")
tn.write(user + "\n")
if password:
    tn.read_until("Password: ")
    tn.write(password + "\n")
tn.write("ls\n")
tn.write("exit\n")
print tn.read_all()

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante -

- lrwxrwxrwx    1 0        0               1 Nov 13  2012 ftp -> .
- lrwxrwxrwx    1 0        0               3 Nov 13  2012 mirror -> pub
- drwxr-xr-x   23 0        0            4096 Nov 27  2017 pub
- drwxr-sr-x   88 0        450          4096 May 04 19:30 site
- drwxr-xr-x    9 0        0            4096 Jan 23  2014 vol

Veuillez noter que cette sortie est spécifique à l'ordinateur distant dont les détails sont soumis lorsque le programme est exécuté.