Открытая интерактивная сессия Telnet из Python - PullRequest
0 голосов
/ 10 сентября 2018

В настоящее время я пишу небольшой скрипт на Python, который считывает некоторые возможные соединения из базы данных (тройка имени узла, IP-адрес telnet и порт telnet) и представляет его пользователю, чтобы выбрать, к какому узлу подключаться.

После этого выбора я хочу открыть интерактивный сеанс Telnet, который может использоваться пользователем, как если бы он вручную подключился с помощью команды telnet.Почему-то мне, вероятно, понадобится escape-последовательность для этого.Он должен работать только на ОС Linux.

Я мог бы просто позвонить по telnet:

# Open shell
call(["telnet", selected_node['ip'], selected_node['port']])

Это работает.Тем не менее, мне интересно, может быть, есть лучшее решение.

1 Ответ

0 голосов
/ 10 сентября 2018

Это питон, все включено. В стандартной библиотеке есть telnet модуль .

import getpass
import telnetlib

HOST = "localhost"
user = input("Enter your remote account: ")
password = getpass.getpass()

tn = telnetlib.Telnet(HOST)

tn.read_until(b"login: ")
tn.write(user.encode('ascii') + b"\n")
if password:
    tn.read_until(b"Password: ")
    tn.write(password.encode('ascii') + b"\n")

tn.write(b"ls\n")
tn.write(b"exit\n")

print(tn.read_all().decode('ascii'))
...