Python3 telnetlib write() 问题

问题描述

我在使用 telnet 通过 VXWorks 机器发送字节字符串时遇到问题。我尝试做登录示例:

import telnetlib

tn = telnetlib.Telnet("192.168.45.61",port=23,timeout=5)
login = "administrator"
print(tn.read_until(b'login:').decode('ascii'))
tn.write(login.encode('ascii') + b'\r\n')
print(tn.read_until(b'Password:').decode('ascii'))

代码片段的输出是:

λ python tmp.py

VxWorks login:
 amnsrtr
Password:

基本上,通过发送到 telnet 服务器并再次读取,字符串“administrator”被更改为“amnsrtr”。登录失败。 这可能是编码问题吗? 如何找出 telnet-server 期望的编码? 我尝试使用 windows telnet 客户端登录,并且成功了。我检查了 windows telnet 客户端的终端设置,发现: “当前代码页:850(OEM - 多语言拉丁语 I)” 所以我尝试了“cp850”和“latin-1”编码,但没有成功。我遍历了字符串“administrator”的所有可用文本编码(编码 -> 解码)组合,以查看是否有任何内容产生“amnsrtr”而没有结果。我发现的模式是基本上每第二个字符都会丢失:

"administrator"
"a_m_n_s_r_t_r"

我不知道该怎么办。任何人都知道可能是什么问题?

我在 Windows 10 上使用 Python 3.6.8

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...