2012-05-02 8 views
8

Sto provando a negoziare una connessione telnet con un socket. La presa funziona, ma il server mi sta dicendo che cosa:Telnet Comando IAC risposta

ÿýÿýÿûÿû 

login: 

Il ÿýÿýÿûÿû significa 255 253 1 255 253 31 255 251 1 255 251 3

Ho letto tutti i documenti RFC ma indosso capisco per cosa devo rispondere per poter inviare (string ascii data?) al server, il mio desiderio è di eseguire correttamente il prompt di login e quindi inviare comandi a un server come "halt" o qualcos'altro.

Grazie in anticipo per la risposta.

+0

Un client telnet normale (dalla riga di comando) disattiva IAC/negoziazione se non si connette a una porta telnet esterna. I codici IAC sono facili da analizzare: IIRC contiene sequenze a due e tre byte, nella maggior parte dei casi è possibile ignorare tutto tranne l'interruttore di attivazione/disattivazione dell'eco. Cercalo nella RFC. – wildplasser

+0

BTW: i codici nel post sembrano danneggiati. 255 + 253 fanno parte di una sequenza di tre byte (IAC + DO + numero_opzione) Secondo byte {251,252,253,254} -> aspetta un terzo byte da seguire. – wildplasser

+0

Ho modificato il mio post! –

risposta

22

Da RFC 854:

Dal il NVT è ciò che resta quando non le opzioni sono attivate, la DO NOT e NON SI risposte sono garantiti per lasciare la connessione in uno stato che entrambe le estremità in grado di gestire. Pertanto, tutti gli host possono implementare i loro processi TELNET in modo totalmente inconsapevole delle opzioni non supportate da , semplicemente restituendo un rifiuto a (vale a dire, rifiutando) qualsiasi richiesta di opzione che non può essere compresa.

Cioè, per ogni WILL, rispondere DONT. Per ogni DO, rispondere WONT.

Nel tuo caso, hai ricevuto (vedi IANA assigned telnet options):

255 253 1 IAC DO ECHO 
255 253 31 IAC DO NAWS 
255 251 1 IAC WILL ECHO 
255 251 3 IAC WILL SUPPRESS-GO-AHEAD 

così si dovrebbe rispondere:

255 252 1 IAC WONT ECHO 
255 252 31 IAC WONT NAWS 
255 254 1 IAC DONT ECHO 
255 254 3 IAC DONT SUPPRESS-GO-AHEAD 

Si noti che non c'è bisogno di sapere che cosa 1, 3, o 31 significa veramente. Questa è la bellezza. Puoi rifiutare queste opzioni senza nemmeno conoscerne la definizione. Avrai solo l'impostazione predefinita sul terminale virtuale di rete.

+0

Sta funzionando! Grazie mille per la tua luce :) –

1

Guardando in su nella RFC 854

255 253 1 IAC DO #1 
255 253 31 IAC DO #31 
255 251 1 IAC WILL #1 
255 251 3 IAC WILL #3 

Ora guardando i valori dei parametri in here: 1: = echo, 31: = dimensione della finestra.

Problemi correlati