11
votes

Comment supprimer l'écho local

J'essaie de supprimer l'écho local d'un mot de passe dans une session Telnet en envoyant 0XFF 0XFD 0x2D (IAC Do Suppress_Local_echo). Cela fonctionne bien.

Mes problèmes permettent à l'écho local après le mot de passe. J'envoie 0XFF 0XFE 0x2D (IAC NONT SUPPRESS_LOCAL_ECHO). Mais je ne vois aucune de mes commandes que je tape après.

J'utilise le programme MS Telnet pour vous connecter.

L'IAC est décrit ici .

L'écho local suppressé est défini ici


2 commentaires

Pourriez-vous éventuellement fournir le code que vous avez utilisé pour envoyer l'écho local SupprPPR Explat Voir ma question connexe - Stackoverflow.com/Questtions/6410579/... :)


Je ne pouvais pas trouver un bon moyen de le faire. Ma solution de contournement est d'envoyer un backpace, puis un «*» pour essayer d'écraser le personnage. Cela fonctionne surtout, mais si les types d'utilisateurs sont rapides 2 caractères pouvaient apparaître et que seul 1 backacace est envoyé.


4 Réponses :


18
votes

Pendant vos sessions Telnet dans Telnet.exe, vous pouvez afficher l'invite Telnet en appuyant sur Ctrl + ]

Après cela, tapez " SET localecho " ou " nonset localecho " pour commuter localecho ON ou OFF .

Appuyez sur Entrez pour revenir à votre session Telnet.


1 commentaires

Mais je veux faire cela de la part de la télécommande. Le côté distant demande le mot de passe. J'ai eu la surepression au travail, mais pas la mécontentement.



-2
votes

Envoyer un backcace puis a *. Cela saura sauvegarder le curseur, puis imprimer un * sur le personnage qu'ils viennent d'imprimer. S'il s'agit d'une connexion lente, le caractère peut être là pendant une certaine quantité de temps. Cherchez également le '\ N' et n'essayez pas d'écrire cela.


2 commentaires

Je ne suis pas sûr que cela devrait être la réponse acceptée (je sais, 8 ans!). Cela la cache après il était déjà affiché et envoyant des caractères supplémentaires. Notez que de nombreux clients (Think Linux, Mac) ne seront pas correctement interprétés correctement.


Cela pourrait fonctionner, je suppose, sauf si vous n'êtes pas dans le mode Linemode. Alors surveillez-vous.



4
votes

Selon mes enquêtes aujourd'hui:

  1. Le client MS Telnet accepte "Définir localecho" et "non défini localecho", mais ne fait rien avec eux à l'exception de l'état de l'état. Cela n'envoie rien sur le fil. L'état réel du client reste «pas d'écho local», peu importe ce que vous faites et ce que "D" dit.

  2. Le serveur MS Telnet envoie IAC, WILL, ECHO et dans la réponse accepte IAC, faire, ECHO et IAC, NON, ECHO, mais les ignore complètement, restant dans ECHO State. Vous pouvez envoyer IAC, faire, Echo ou Iac, ne pas echo plus tard et il ne répondra même pas.

    En conséquence, si vous utilisez le client MS pour parler à un serveur Telnet non MS telnet ou à l'aide d'un autre client pour parler au serveur MS Telnet, vous ferez mieux de rester en mode NO-ECHO, sinon vous obtiendrez la double écho .

    Windows Vista 64.


1 commentaires

Le client MS Telnet est connu pour être cassé en termes de manipulation de l'option Echo - lorsqu'un hôte sur une connexion Telnet est dans "Echo", cela signifie que cela fera écho à l'autre extrémité ce qui est envoyé à celui-ci (Peut ne pas être une copie exacte, il est autorisé à "cuire" les données) - Cependant, le point de départ de tout client / hôte telnet doit ne pas faire écho jusqu'à ce que les deux parties ne soient d'accord. De plus, pour cette option particulière, il n'est pas autorisé pour les deux extrémités pour écho à ce qu'ils reçoivent comme des caractères, car les caractères seront résérés indéfiniment - sauf que le message d'expression indique qu'il ne le fera jamais (!) Et de garder l'autre extrémité dans «Non Echo».



5
votes

Mauvaise séquence ci-dessus. Selon certains documents que j'ai trouvés, ma séquence devrait être fausse (Wont / Wont retourné). Cependant, cela fonctionnait avec PuTTY et MS Telnet - Etrange.

Essayez ceci: p>

// 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


1 commentaires

Quelle que soit la fin des celles-ci sont envoyées, elles n'auront aucun effet à moins que le pair accepte.