如何使用python向远程主机发送F2密钥

2024-05-19 16:26:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须发送F2密钥到telnet主机。如何使用python发送它…使用getch()我发现字符{}用于F2键,但在发送>时,它不起作用。我想有一种方法可以发送特殊功能键,但我找不到。如果有人知道,请帮帮我。提前谢谢


Tags: 方法密钥字符telnetf2getch帮帮我功能键
2条回答

首先,正如Ignacio所指出的,您必须确定F2发送的字符的确切序列。在我的机器上,这恰好是^[OQ,其中^[表示ASCII代码为27的转义字符。这和他得到的一模一样。您必须通过telnet发送相同的字节序列。假设正确的序列是我上面所示的序列,可以归结为:

import telnetlib

tn = telnetlib.Telnet(HOST, PORT)
tn.write(idpass)
tn.write("\x1b0Q")
tn.close()

如果您想知道,\x1b表示ASCII代码为27的字符,因为十六进制中的27是1b。 这在我的机器上工作(由接收端的一个简单的echo服务器测试),所以如果它不适合您,这意味着远程端需要其他东西来代替F2按键。在

扩展密钥(非字母数字或符号)由单个字符序列组成,序列取决于您告诉telnet服务器您正在使用的终端。您需要发送序列中的所有字符才能使其正常工作。在这里,使用od -c <<< 'CtrlVF2'我可以看到\x1b0Q的序列与xterm。在

相关问题 更多 >