如何使用python将F2键发送到远程主机

时间:2010-06-14 06:40:26

标签: python telnet

我必须将 F2 密钥发送到telnet主机。如何使用python发送...使用getch()我发现用于 F2 键的字符<但是在发送>时,它无效。我认为有一种方法可以发送特殊功能键,但我无法找到它。有人知道请帮助我。提前致谢

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

首先,正如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。 这适用于我的机器(由接收端的简单回显服务器测试),所以如果它不适合你,则意味着远程端需要用其他东西代替F2按键。