Python - Telnet

Telnet ist eine Art Netzwerkprotokoll, mit dem sich ein Benutzer auf einem Computer bei einem anderen Computer anmelden kann, der ebenfalls zum selben Netzwerk gehört. Der Telnet-Befehl wird zusammen mit dem Hostnamen verwendet und anschließend werden die Benutzeranmeldeinformationen eingegeben. Nach erfolgreicher Anmeldung kann der Remotebenutzer auf ähnliche Weise wie der normale Benutzer des Systems auf die Anwendungen und Daten zugreifen. Natürlich können einige Berechtigungen vom Administrator des Systems gesteuert werden, der das System einrichtet und wartet.

In Python wird Telnet durch das Modul telnetlib implementiert, das über die Telnet-Klasse verfügt, die über die erforderlichen Methoden zum Herstellen der Verbindung verfügt. Im folgenden Beispiel verwenden wir auch das getpass-Modul, um die Kennwortabfrage im Rahmen des Anmeldevorgangs zu verarbeiten. Wir gehen auch davon aus, dass die Verbindung zu einem Unix-Host hergestellt wird. Die verschiedenen im Programm verwendeten Methoden der telnetlib.Telnet-Klasse werden nachfolgend erläutert.

  • Telnet.read_until - Lesen, bis eine bestimmte erwartete Zeichenfolge gefunden wird oder bis eine Zeitüberschreitung von Sekunden verstrichen ist.

  • Telnet.write - Schreiben Sie eine Zeichenfolge in den Socket und verdoppeln Sie alle IAC-Zeichen. Dies kann blockieren, wenn die Verbindung blockiert ist. Kann socket.error auslösen, wenn die Verbindung geschlossen ist.

  • Telnet.read_all () - Alle Daten bis EOF lesen; blockieren, bis die Verbindung geschlossen ist.

Beispiel

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()

Wenn wir das obige Programm ausführen, erhalten wir die folgende Ausgabe:

- 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

Bitte beachten Sie, dass diese Ausgabe spezifisch für den Remotecomputer ist, dessen Details beim Ausführen des Programms übermittelt werden.