我试图通过发送0xFF 0xFD 0x2D(IAC DO SUPPRESS_LOCAL_ECHO)来抑制telnet会话中密码的本地回显。这很好用。
我的麻烦是在密码后启用本地回显。我发送0xFF 0xFE 0x2D(IAC DONT SUPPRESS_LOCAL_ECHO)。但我没有看到我之后输入的任何命令。
我正在使用MS Telnet程序进行连接。
IAC描述here。
抑制本地回声定义为here
答案 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)
根据我今天的调查:
MS Telnet客户端接受'set localecho'和'unset localecho'但除了记录状态之外什么都不做。它不会在线上发送任何东西。无论你做什么和做什么,客户的真实状态仍然是“没有本地回声”。
MS Telnet服务器发送IAC,WILL,ECHO,并作为回复接受IAC,DO,ECHO和IAC,DONT,ECHO,但完全忽略它们,始终处于WILL ECHO状态。您可以稍后发送IAC,DO,ECHO或IAC,DONT,ECHO,它甚至不会回复。
因此,如果您使用MS客户端与非MS Telnet服务器通话或使用其他客户端与MS Telnet服务器通话,则最好保持非本地回显模式,否则您将获得双回显
Windows Vista 64。
答案 3 :(得分:-3)
发送退格,然后发送*。这将备份光标,然后在刚打印的字符上打印*。如果是慢速连接,角色可能会在那里停留一段时间。同时寻找'\ n'并且不要试图过度写。