telnet web terminal
Любые идеи по созданию telnet веб терминала, аналог putty только через веб. Веб framework django. Консоль на js реализована.
Советуют использовать fastapi или же tornado.
Необходимо создавать сессию и держать подключение с устройством.
класс telnet подключения:
class TelnetClient():
PROMPT = b'#'
LISTPROMPT = [b'#', b'--More--', b'<space>']
LISTAUTHLOGIN = [b'User Name:',b'login:']
def __init__(self, ):
self.tn = telnetlib.Telnet()
def login_host(self, host_ip, username, password):
try:
self.tn.open(host_ip, port=23)
except:
return False #network failure
self.tn.expect(self.LISTAUTHLOGIN,timeout=5)
self.tn.write(username.encode('ascii') + b'\n')
self.tn.read_until(b'Password:', timeout=5)
self.tn.write(password.encode('ascii') + b'\n')
if self.tn.read_until(self.PROMPT):
return True #successful login
else:
return False #Login failed
def execute_some_command(self, command):
self.tn.write(command.encode('ascii') + b"\n")
print('<br>'.join([(f"{k.decode('ascii')}") for k in self.tn.expect(self.LISTPROMPT)[2:]]))
def getsoket(self):
return self.tn.get_socket()
# Exit telnet
def logout_host(self):
self.tn.write(b"exit\n")
