O cliente de telnet do Windows pode ser roteirizado?

7

É possível usar o cliente Windows Telnet para executar uma série de comandos em um script?

Se não houver alguma alternativa que possa ser?

    
por LachlanG 17.07.2009 / 02:36

6 respostas

6

Há séculos, escrevi um servidor COM para permitir que eu fizesse telnet a partir do VBScript. Se você quiser uma cópia (incluindo a fonte) eu ficaria feliz em colocá-lo na Internet em algum lugar. Eu uso isso para reinicializar remotamente os roteadores.

Para dar uma ideia do que faz, aqui está um exemplo de script (com a verificação de erros removida)

const SVR = "www.microsoft.com"
dim telnet, s, i

set telnet = CreateObject("Rhs.Telnet")
telnet.Startup()

telnet.Connect SVR, 80
telnet.Writeline "GET / HTTP/1.0"
telnet.Writeline "Host: www.microsoft.com"
telnet.Writeline "User-Agent: RhsTelnet"
telnet.Writeline "Accept: */*"
telnet.Writeline ""

do while telnet.Readline(s, 1000)
  wscript.echo s
loop

telnet.Disconnect()
telnet.Cleanup()

JR

Link para o servidor COM: oi Lachlan tente link

Este é o servidor COM e um script para reiniciar um roteador Draytek. O script RouterCheck.wsf verifica se ele pode executar ping em alguns hosts de teste, portanto, você provavelmente desejará ignorar a maior parte do código. Apenas use a função RebootRouter e ignore o resto. Isso é no final da minha linha ADSL, então o download pode ser um pouco lento.

Se alguém quiser a fonte (Visual C ++ 5.0 com ATL), então eu posso soltá-lo no SourceForge.

    
por 17.07.2009 / 09:42
6

Sim. Confira este tópico .

    
por 17.07.2009 / 02:59
3

Você pode instalar o Perl e usar o Net :: Telnet, que permite enviar e interpretar os dados recebidos.

O ActivePerl é provavelmente a maneira mais rápida de começar a usar isso:

link

E Net :: Telnet está documentado aqui:

link

Outras questões sobre como codificar usando o Net :: Telnet provavelmente pertencem ao StackOverflow. Você também pode consultar www.perlmonks.org para exemplos e dicas.

    
por 17.07.2009 / 09:28
1

Eu sei que este é um tópico muito antigo, mas eu vim até aqui de uma questão relacionada e percebi que uma resposta muito óbvia foi perdida. Já ouviu falar de massa? Há uma versão programável de linha de comando chamada plink.

Plink Howto Executável do Plink

    
por 31.12.2010 / 08:28
0

Se você não se importa com uma solução comercial, existe um cliente de telnet comercial chamado TeSSH , que possui uma linguagem de script avançada e pode ser executada a partir da linha de comando. Tem suporte para escrever scripts em vbs, perl e lua. É razoavelmente barato em $ 34.95. Você também pode visitar os Fóruns de suporte do TeSSH .

    
por 17.07.2009 / 17:34
0

Eu criei este script em lote com base em uma resposta anterior :

@ECHO OFF
SET [email protected]
SET [email protected]
SET TF=%TEMP%\%~n0.vbs
(
 ECHO Set sh = WScript.CreateObject^("WScript.Shell"^)
 ECHO sh.SendKeys "HELO %COMPUTERNAME%~"
 ECHO sh.SendKeys "MAIL FROM: %ME%~"
 ECHO sh.SendKeys "RCPT TO: %TO%~"
 ECHO sh.SendKeys "DATA~"
 ECHO sh.SendKeys "From: %ME%~"
 ECHO sh.SendKeys "To: %TO%~"
 ECHO sh.SendKeys "Subject: Example subject...~"
 ECHO sh.SendKeys "~"
 ECHO sh.SendKeys "Contents...~"
 ECHO sh.SendKeys ".~"
 ECHO sh.SendKeys "QUIT~"
 ECHO WScript.Sleep 1000
 ECHO sh.SendKeys "~"
) > "%TF%"
START "" TELNET.EXE SMTPSERVER 25
CSCRIPT //NoLogo "%TF%"
DEL "%TF%"
    
por 08.12.2016 / 12:24