Telnet — это тип сетевого протокола, который позволяет пользователю на одном компьютере войти в систему на другом компьютере, который также принадлежит к той же сети. Команда telnet используется вместе с именем хоста, а затем вводятся учетные данные пользователя. После успешного входа в систему удаленный пользователь может получить доступ к приложениям и данным способом, аналогичным обычному пользователю системы. Конечно, некоторые привилегии могут контролироваться администратором системы, который настраивает и поддерживает систему.
В Python telnet реализуется модулем telnetlib, который имеет класс Telnet, который имеет необходимые методы для установления соединения. В приведенном ниже примере мы также используем модуль getpass для обработки запроса пароля как часть процесса входа в систему. Также мы предполагаем, что соединение установлено с хостом Unix. Различные методы из класса telnetlib.Telnet, используемые в программе, описаны ниже.
-
Telnet.read_until — чтение до тех пор, пока не будет найдена заданная строка, или пока не истечет время ожидания.
-
Telnet.write — записывает строку в сокет, удваивая любые символы IAC. Это может заблокировать, если соединение заблокировано. Может вызвать socket.error, если соединение закрыто.
-
Telnet.read_all () — читать все данные до EOF; заблокировать, пока соединение не будет закрыто
Telnet.read_until — чтение до тех пор, пока не будет найдена заданная строка, или пока не истечет время ожидания.
Telnet.write — записывает строку в сокет, удваивая любые символы IAC. Это может заблокировать, если соединение заблокировано. Может вызвать socket.error, если соединение закрыто.
Telnet.read_all () — читать все данные до EOF; заблокировать, пока соединение не будет закрыто
пример
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()
Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:
- 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
Обратите внимание, что этот вывод относится к удаленному компьютеру, данные которого передаются при запуске программы.