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