如何使用python在telnet会话中提供命令

时间:2019-06-25 06:20:11

标签: python-3.x telnet telnetlib

我正在编写python脚本来自动化模拟器中的某些任务...要连接到模拟器的命令是telnet localhost <port>

我通过os.system(telnet localhost <port>)发出的命令。

正在工作。

模拟器正在运行:

  

尝试:: 1 ...
  已连接到本地主机。
  转义字符为'^]'。
  >

现在我必须通过python发出命令,但是我不能 在这个(>)里面,我必须给..我使用了telnet命令,但是没有用。

#!/usr/bin/env python
import os,re,telnetlib
host = "localhost"
port = "1111"

tn = telnetlib.Telnet(host, port)
tn.write("exit")

这是示例代码,但是不起作用。

2 个答案:

答案 0 :(得分:0)

写入命令需要以字节为单位提供内容。试试这个:

import os,re,telnetlib

host = "google.com"
port = "80"

telnet_client = telnetlib.Telnet(host, port)
print('Connection established')

telnet_client.write(b'exit')
print('<END/>')

答案 1 :(得分:0)

您可能需要告诉telnetlibread until提示符,然后编写要发出的命令。

import os,re,telnetlib
host = "localhost"
port = "1111"

tn = telnetlib.Telnet(host, port)
tn.read_until(b">", timeout=10) # <- add this line
# tn.read_until(b"> ", timeout=10) # if prompt has space behind
tn.write(b"exit\n")

您可能还会发现此问题有帮助:Python Telnetlib read_until '#' or '>', multiple string determination?