¿Cómo enviar texto con telnet en la Terminal?

5

Me gustaría enviar algo de texto a un puerto en mi máquina usando telnet en la Terminal de Mac OS X.

Comienzo telnet usando:

telnet localhost 8080

Luego escribo un texto. ¿El texto se envía automáticamente o tengo que hacer algo para enviar el texto?

    
pregunta Jonas 20.05.2011 - 13:42

4 respuestas

9

Aquí hay un servidor Python simple:

#!/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()

Fuente

Guárdalo como server.py y ejecútalo python server.py .

A continuación, intente conectarse utilizando el terminal

telnet 127.0.0.1 5005

Luego simplemente escribe cualquier cosa y presiona return

El servidor imprime los datos en la consola y se los envía a usted.

De esa manera, sabrá lo que tiene que hacer para enviar datos a través de telnet.

    
respondido por el Loïc Wolff 20.05.2011 - 15:02
3

La respuesta depende de lo que admita el extremo remoto:

  1. Más reciente línea Modo donde se realiza el procesamiento de caracteres localmente mientras el mando a distancia solo envía y recibe paquetes de control durante escribiendo y recibe una línea completa cuando ingresa un carácter de fin de línea (por ejemplo, presionando ENTER).
  2. Carácter a la vez donde Cada char se transmite como es escrito.
  3. Línea a la vez antigua - completamente Las líneas completadas se transmiten.

Lo que hace el extremo remoto con la entrada recibida, depende del extremo remoto. La mayoría de los procesos de servidor (HTTP, SMTP, POP, IMAP) tienden a esperar el carácter de fin de línea (EOL, nueva línea) antes de procesar la entrada. Algunos otros pueden esperar a que finalice el archivo (EOF, ^ D) antes de comenzar a procesar la entrada.

    
respondido por el Laas 20.05.2011 - 14:40
3

Al escribir el texto en telnet , de forma predeterminada, funciona en Linemode que envía los paquetes por línea, por lo que solo necesita presionar Ingresar para enviar el comando al host remoto (desde el procesamiento del carácter del terminal en el lado del cliente). Esto es para reducir el tráfico de la red y es muy útil para redes de largo retraso al escribir la línea de comandos. Si necesita enviar paquetes por carácter escrito, debe cambiar al modo binario.

Para probar Telnet en Linemode , puede ejecutar el servidor ficticio para escuchar en el puerto local, por ejemplo. utilizando netcat (instale si es necesario):

nc -vl localhost 1234

luego, en otra terminal, conéctese a su servidor mediante:

telnet localhost 1234

y comience a ingresar texto para verificar cuándo se reciben los datos.

Pulsa Control - ] ( ^] ) y escribe quit para finalizar.

También es posible enviar datos usando Bash shell mediante el siguiente comando:

cat > /dev/tcp/127.0.0.1/1234

luego comienza a ingresar texto. Cuando haya terminado, presione Control - D .

    
respondido por el kenorb 10.02.2016 - 12:41
-2

Intente usar el comando send después de haber abierto la conexión con el host de destino.

send "some text"

Para obtener más información sobre send , vea man telnet

    
respondido por el maxt3r 20.05.2011 - 14:11

Lea otras preguntas en las etiquetas