Usando esperar para enviar Ctrl + D para uma conexão telnet

3

Eu quero usar esperar arquivo para conectar-se à sessão de telnet automaticamente, o fluxo é:

  • quando nos conectamos a alguns IP & port, ele mostrará escape character is ]
  • depois disso temos que dar Ctrl + D

Eu escrevi um arquivo esperado que envia \x04 para Ctrl + D . Quando executo esse arquivo, é bom conectar-me, mas espero que eu dê Ctrl + D do teclado. Mas eu quero que ele entre automaticamente no Ctrl + D do próprio script. Nada deve ser feito manualmente.

Você pode explicar o caminho?

    
por sowseelya 19.12.2012 / 19:47

3 respostas

2

Você pode sair automaticamente do telnet sem usar o shell esperado.

sleep <n> | telnet <server> <port>

n - O tempo de espera em segundos antes da saída automática. Pode ser fracionário como 0,5. Observe que alguma saída necessária pode não ser retornada no tempo de espera especificado. Então, podemos precisar aumentar de acordo.

server - O IP ou nome do host do servidor de destino.

port - número da porta de serviço de destino.

Você também pode redirecionar a saída para um arquivo como este,

sleep 1 | telnet <server> <port> > output.log
    
por 13.06.2014 / 14:21
1

Sugiro alterar o caractere de escape para um que você pode enviar com mais facilidade em expect . Por exemplo, se você souber que não está enviando o ponto de exclamação, use-o como o caractere de escape:

$ telnet -e ! 10.1.2.3 80
Telnet escape character is '!'.
Trying 10.1.2.3...
Connected to 10.1.2.3.
Escape character is '!'.
GET!
telnet> quit
Connection closed.
    
por 19.12.2012 / 20:42
0

Você pode digitar ctrl + V , ctrl + D para obter a sequência de bytes literal na sua expectativa roteiro. O expect irá então enviar isto exatamente como se você digitasse interativamente ctrl + D .

    
por 19.12.2012 / 22:30

Tags