如何抑制局部回声

时间:2009-07-08 14:36:14

标签: telnet echo

我试图通过发送0xFF 0xFD 0x2D(IAC DO SUPPRESS_LOCAL_ECHO)来抑制telnet会话中密码的本地回显。这很好用。

我的麻烦是在密码后启用本地回显。我发送0xFF 0xFE 0x2D(IAC DONT SUPPRESS_LOCAL_ECHO)。但我没有看到我之后输入的任何命令。

我正在使用MS Telnet程序进行连接。

IAC描述here

抑制本地回声定义为here

4 个答案:

答案 0 :(得分:11)

在telnet.exe中的telnet会话期间,您可以按 Ctrl + ]

弹出telnet提示

之后,输入“ set localecho ”或“ unset localecho ”来打开或关闭localecho。

Enter 返回您的telnet会话。

答案 1 :(得分:3)

上面的错误序列。 根据我发现的一些文件,我的序列应该是错误的(WILL / WONT翻转)。然而,它与Putty和MS Telnet合作 - 很奇怪。

请试试这个:

// Supress Echo on client:
out.write(0xFF);    // IAC
out.write(0xFB);    // WILL
out.write(0x01);    // ECHO

// Enable again with:
out.write(0xFF);    // IAC
out.write(0xFC);    // WONT
out.write(0x01);    // ECHO

答案 2 :(得分:2)

根据我今天的调查:

  1. MS Telnet客户端接受'set localecho'和'unset localecho'但除了记录状态之外什么都不做。它不会在线上发送任何东西。无论你做什么和做什么,客户的真实状态仍然是“没有本地回声”。

  2. MS Telnet服务器发送IAC,WILL,ECHO,并作为回复接受IAC,DO,ECHO和IAC,DONT,ECHO,但完全忽略它们,始终处于WILL ECHO状态。您可以稍后发送IAC,DO,ECHO或IAC,DONT,ECHO,它甚至不会回复。

  3. 因此,如果您使用MS客户端与非MS Telnet服务器通话或使用其他客户端与MS Telnet服务器通话,则最好保持非本地回显模式,否则您将获得双回显

    Windows Vista 64。

答案 3 :(得分:-3)

发送退格,然后发送*。这将备份光标,然后在刚打印的字符上打印*。如果是慢速连接,角色可能会在那里停留一段时间。同时寻找'\ n'并且不要试图过度写。