12

0xFF 0xFD 0x2D (IAC DO SUPPRESS_LOCAL_ECHO) を送信して、telnet セッションでパスワードのローカル エコーを抑制しようとしています。これはうまくいきます。

問題は、パスワードの後に​​ローカル エコーを有効にすることです。0xFF 0xFE 0x2D (IAC DONT SUPPRESS_LOCAL_ECHO) を送信しています。しかし、後で入力したコマンドは表示されません。

MS Telnet プログラムを使用して接続しています。

ここで IAC について説明します

Suppress Local Echo はここで定義されます

4

4 に答える 4

19

Ctrltelnet.exe での telnet セッション中に+を押すと、telnet プロンプトをポップアップ表示できます。]

その後、「set localecho」または「unset localecho」と入力して、localecho のオンとオフを切り替えます。

を押しEnterて、Telnet セッションに戻ります。

于 2009-07-12T04:36:30.983 に答える
5

上記の順序が間違っています。私が見つけたいくつかのドキュメントによると、私のシーケンスは間違っているはずです (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
于 2015-02-17T21:52:30.893 に答える
4

今日の私の調査によると:

  1. MS Telnetクライアントは、「setlocalecho」と「unsetlocalecho」を受け入れますが、状態を記録する以外は何もしません。回線には何も送信されません。クライアントの実際の状態は、何をしても「d」が何を言っても、「ローカルエコーなし」のままです。

  2. MS TelnetサーバーはIAC、WILL、ECHOを送信し、応答としてIAC、DO、ECHO、およびIAC、DONT、ECHOを受け入れますが、それらを完全に無視し、全体を通してWILLECHO状態のままになります。後でIAC、DO、ECHOまたはIAC、DONT、ECHOを送信できますが、応答すらありません。

したがって、MSクライアントを使用して非MS Telnetサーバーと通信する場合、または別のクライアントを使用してMS Telnetサーバーと通信する場合は、ローカルエコーなしモードのままにしておくと、デュアルエコーが発生します。

WindowsVista64。

于 2012-09-20T07:35:46.620 に答える
-2

バックスペースに続いて * を送信します。これにより、カーソルがバックアップされ、印刷されたばかりの文字の上に * が印刷されます。接続が遅い場合は、キャラクターがしばらくそこにいる可能性があります。「\n」も探して、上書きしないでください。

于 2009-07-14T14:27:43.900 に答える