Come inviare testo con telnet nel terminale?

5

Vorrei inviare del testo a una porta sulla mia macchina usando telnet nel terminale Mac OS X.

Inizio telnet utilizzando:

telnet localhost 8080

Quindi scrivo del testo. Quel testo viene inviato automaticamente o devo fare qualcosa per inviare il testo?

    
posta Jonas 20.05.2011 - 13:42
fonte

4 risposte

9

Ecco un semplice server Python:

#!/usr/bin/env python

import socket


TCP_IP = '127.0.0.1'
TCP_PORT = 5005
BUFFER_SIZE = 10  # Normally 1024, but we want fast response

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)

conn, addr = s.accept()
print 'Connection address:', addr
while 1:
    data = conn.recv(BUFFER_SIZE)
    if not data: break
    print "received data:", data
    conn.send(data)  # echo
conn.close()

Source

Salvalo come server.py ed eseguilo python server.py .

Quindi prova a connetterti usando il terminale

telnet 127.0.0.1 5005

Quindi scrivi qualcosa e premi return

Il server stampa i dati nella console e te lo rispedisce.

In questo modo, saprai cosa devi fare per inviare i dati tramite telnet.

    
risposta data 20.05.2011 - 15:02
fonte
3

La risposta dipende da cosa supporta la parte remota:

  1. Nuova Linea Modalità dove viene eseguita l'elaborazione dei caratteri localmente mentre il telecomando invia solo e riceve pacchetti di controllo durante digitando e ricevendo un'intera riga quando si inserisce un carattere di fine riga (ad esempio, premendo INVIO).
  2. Carattere in un momento in cui ogni char viene trasmesso così com'è digitato.
  3. Old line-at-a-time - completamente le linee completate vengono trasmesse.

Ciò che il telecomando fa con l'ingresso ricevuto, dipende dal terminale remoto. La maggior parte dei processi server (HTTP, SMTP, POP, IMAP) tendono ad attendere il carattere di fine riga (EOL, newline) prima di elaborare l'input. Alcuni altri potrebbero attendere la fine del file (EOF, ^ D) prima di iniziare a elaborare l'input.

    
risposta data 20.05.2011 - 14:40
fonte
3

Quando digiti il testo in telnet , per impostazione predefinita opera in Linemode che inviano i pacchetti per riga, quindi è sufficiente premere Invio per inviare il comando all'host remoto (dall'elaborazione del carattere terminale sul lato client). Questo è per ridurre il traffico di rete ed è molto utile per le reti a lungo ritardo mentre si digita la riga di comando. Se è necessario inviare pacchetti per carattere digitato, è necessario passare alla modalità binaria.

Per testare Telnet in Linemode , puoi eseguire il server fittizio in ascolto sulla porta locale, ad es. utilizzando netcat (installa se necessario):

nc -vl localhost 1234

quindi in un altro terminale connettiti al tuo server da:

telnet localhost 1234

e inizia a inserire del testo per controllare quando i dati sono ricevuti.

Hit Control - ] ( ^] ) e digita quit per finire.

È anche possibile inviare dati usando la shell Bash con il seguente comando:

cat > /dev/tcp/127.0.0.1/1234

quindi inizia a inserire il testo. Al termine, premi Controllo - D .

    
risposta data 10.02.2016 - 12:41
fonte
-2

Prova a utilizzare il comando send dopo aver aperto la connessione all'host di destinazione.

send "some text"

Per ulteriori informazioni su send vedi man telnet

    
risposta data 20.05.2011 - 14:11
fonte

Leggi altre domande sui tag