从 Python 打开交互式 telnet 会话
Open interactive telnet session from Python
我目前正在 Python 中编写一个小脚本,它从数据库中读取一些可能的连接(节点名称、telnet IP 地址和 telnet 端口的三元组)并将其呈现给用户以选择哪个节点连接。
选择之后,我想打开一个交互式 Telnet 会话,用户可以像使用 telnet 命令手动连接一样使用它。不知何故,我可能需要一个转义序列。它只需要在 Linux OS.
上工作
我可以调用 telnet:
# Open shell
call(["telnet", selected_node['ip'], selected_node['port']])
确实有效。但是,我想知道是否有更好的解决方案。
是python,什么都有。标准库里有个telnet
module
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'))
我目前正在 Python 中编写一个小脚本,它从数据库中读取一些可能的连接(节点名称、telnet IP 地址和 telnet 端口的三元组)并将其呈现给用户以选择哪个节点连接。
选择之后,我想打开一个交互式 Telnet 会话,用户可以像使用 telnet 命令手动连接一样使用它。不知何故,我可能需要一个转义序列。它只需要在 Linux OS.
上工作我可以调用 telnet:
# Open shell
call(["telnet", selected_node['ip'], selected_node['port']])
确实有效。但是,我想知道是否有更好的解决方案。
是python,什么都有。标准库里有个telnet
module
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'))