Batch-Satti
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Batch-Satti

Você não está conectado. Conecte-se ou registre-se

Redirecionar Saída de comandos digitados no TelNet

4 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1endell

1endell

Caros amigos,

Depois de tanto quebrar a cabeça e não obter resultados, venho pedir ajuda pra vocês que dominam o assunto

Meu objetivo é conseguir obter meu IP externo sem usar ferramentas gratuitas, que depois de um tempo, passam a cobrar e de forma automatizada, apenas com recursos locais.

No script que adaptei do Boss, eu acesso o modem pelo Telnet, digito um comando (IP IFCONFIG) e obtenho muitas informações, inclusive meu IP externo. O que não estou conseguindo é redirecionar a saída desse comando para um arquivo.txt, onde eu iria tratá-lo.

Segue o meu código:

<telnet.bat>

@ECHO OFF
:: :::::::::::::::::::::::::::::::::::::::::::::
:: Digita.VBS "comandos"
ECHO.set handler=WScript.CreateObject("WScript.Shell")>Digita.VBS
ECHO.WScript.sleep 500 >>Digita.VBS


:: :::::::::::::::::::::::::::::::::::::::::::::
:: estabelecer conexão com o host do telnet
ECHO.handler.SendKeys "o 192.168.1.1~" >>Digita.VBS
ECHO.WScript.sleep 500 >>Digita.VBS


:: :::::::::::::::::::::::::::::::::::::::::::::
:: Enviar meu login e minha senha
ECHO.handler.SendKeys "admin~" >>Digita.VBS
ECHO.WScript.sleep 500 >>Digita.VBS
:: Send Password
ECHO.handler.SendKeys "gvt12345~" >>Digita.VBS
ECHO.WScript.sleep 500 >>Digita.VBS

:: :::::::::::::::::::::::::::::::::::::::::::::
:: Enviar Material coletado
ECHO.handler.SendKeys "ip ifconfig~" >>Digita.VBS
ECHO.WScript.sleep 1500 >>Digita.VBS

:: :::::::::::::::::::::::::::::::::::::::::::::
:: Logout encessando processo
ECHO.handler.SendKeys "exit~" >>Digita.VBS
ECHO.WScript.sleep 250 >>Digita.VBS
ECHO.handler.SendKeys " " >>Digita.VBS
ECHO.WScript.sleep 250 >>Digita.VBS
ECHO.handler.SendKeys "quit~" >>Digita.VBS
ECHO.handler.SendKeys "quit~" >>Digita.VBS
ECHO.WScript.sleep 250 >>Digita.VBS
cmd /c telnet.EXE
cscript /nologo Digita.VBS
DEL Digita.VBS

</telnet.bat>

Como sugerem que eu proceda?

Boss-Head

Boss-Head

chama o seu telnet.bat por outro arquivo bat ....
assim.....

start telnet.bat >teste.txt
e vê se grava as info q vc quer....

1endell

1endell

Ish, Boss...

Não deu certo.
Ele chama o telnet,bat, mas ele executa normalmente, sem redirecionar...
Mas obrigado pela ajuda!

gwy



eae endell
bom, no caso do ip eu posso te dar uma ajuda. como? tem um programinha feito por um programador ... Rolling Eyes ... que com a ajuda do um site busca seu ip.
Link: [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Caso vc queira ainda obter o ip mas sem ser dessa forma, tem como via vbs que faz o download de uma url pra uma string capturando o ip.

[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

vou dar uma procurada, mas tenho certeza que tem um source assim aqui no fórum.

Att césar

1endell

1endell

Muito Legal, César!

Eu ainda quero aprender VB. Me ajudaria muito.

Mas é o Seguinte. No caso eu precisaria de uma automação... O processo que eu estou querendo, armazenaria meu IP em uma variável. Eu até tenho um código VB que faz exatamente isso que você falou, que acessa um site que tem em seu corpo apenas o meu endereço IP. Ele pega esse endereço e armazena.

Acontece que, eu quero fazer algo totalmente independente, entende? Pois, pra mim, essa solução iria substituir aqueles serviços DDNS "gratuitos", que, com o tempo, passam a cobrar pelo serviço. E quanto ao site... E se um dia, ele sair do ar e eu não tiver acesso ao pc onde está o script pra poder editá-lo?

Mas assim, muito obrigado! Gostei muito do seu arquivo EXE, ficou muito legal! Salvei ele aqui pra mim, pois será muito útil.

C-Com

C-Com

Estranho mesmo o telnet.exe não usar fluxo de saída pra arquivo.

Faça o seguinte: antes de usar o telnet, você vai limpar a tela. Depois de limpar e quando a informação que você precisa já estiver toda no ecrã, você vai usar esse script:

[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

Ele vai gerar um arquivo de texto com o nome "screen.txt". Foi a única forma que eu consegui pensar por enquanto.

Você vai ter que procurar o IP nesse arquivo porque ele vai conter o texto que havia no ecrã. Há outras formas de pegar o IP (dependendo de como a rede tá montada), mas esse script eu fiz especificamente pro teu problema com o telnet.exe

Boss-Head

Boss-Head

Só pra não passar batido.
ainda não pensei como direcionar o comando más ha algum tempo tinha esse vbs para conectar no modem e serve de exemplo....

Dim objShell
Dim objNetwork

Set objNetwork=CreateObject("WScript.Network")

strTitle="Demo de telnet"
strDefaultServer="10.1.1.1"
strDefaultUser="admin"
'objNetwork.UserDomain & "\" & objNetwork.UserName
strDefaultPassword="admin"

strComputer=InputBox("Nome ou IP do servidor ou dispositivo que você deseja se conectar?",_
strTitle,strDefaultServer)
If Len(strComputer)=0 Then WScript.quit

strUsername=InputBox("Usuario ou senha ?",strTitle,_
strDefaultUser)
If Len (strUsername)=0 Then WScript.Quit

strPassword=InputBox("Senha de acesso?",strTitle,_
strDefaultPassword)
If Len (strPassword)=0 Then WScript.Quit

Set objShell=CreateObject("wscript.shell")
objShell.Run "Telnet " & strComputer
WScript.Sleep 5000
objShell.AppActivate "Telnet " & strComputer
objShell.SendKeys strUsername & "~"
WScript.Sleep 2000
objShell.SendKeys strPassword & "~"
WScript.Sleep 2000
objShell.SendKeys "show"
WScript.Sleep 200
objShell.SendKeys "~"
WScript.Sleep 200
objShell.SendKeys "ifconfig"
WScript.Sleep 200
objShell.SendKeys "~"
objShell.AppActivate "Telnet " & strComputer
objShell.SendKeys "logout"
WScript.Sleep 200
objShell.SendKeys "~"

1endell

1endell

Olá, Amigos!

Primeiramente, quero agradecer pela ajuda que vocês têm me dado.

C-Com, o script que você me passou exporta a seguinte informação para o arquivo txt "ECHO est desativado.", parecendo quando a gente digita echo 1(ou qualquer número)>arquivo.txt

Boss, o que você me passou segue até o momento que digita o ip ifconfig e ele até mostra tudo como no que eu fiz, mas ele não redireciona para o arquivo.txt

Novamente, quero agradecer a todos pela ajuda. Vocês têm me dado muitas ideias!

C-Com

C-Com

Aqui funciona perfeito. O seu Windows é qual?

1endell

1endell

Windows 7, C-Com...
Vai ver, estou fazendo besteira...
poderia me ajudar?

C-Com

C-Com

Provavelmente seu Windows não tem o debug.exe. Se esse for o caso, o script que eu postei deve ser desprezado.

1endell

1endell

Ah, sim...

Bem, de qualquer forma, muito obrigado por me ajudar. Vou tentar com o WinXP e, qualquer coisa, te deixo a par da situação.
Muito obrigado, manim!

gwy



Poisé.. por que será que não colocaram o debug no win7? '-'
Pelo menos eu procurei aqui e não achei.. nem um assemelhado.

1endell

1endell

Complicado...

Achei que faltava pouco, agora "Vamos à prancheta" novamente.kkkk

C-Com

C-Com

É por causa das arquiteturas diferentes. O 7 saiu com versões 32 e 64 bits, daí tiraram o debug que usava a arquitetura do intel 8086 que é 16 e 32 bits.

Cara, jeito tem. Sempre tem. Só que o que eu fiz foi tentar fazer usando só o batch sem extrapolar muitos recursos além do debug. Mas não deu certo, então, bora tentar outra coisa.

Tem uma parada que chama "stdout" e vale pra qualquer aplicativo do windows. Só que eu ainda não sei se o tal telnet usa esse recurso, porque à primeira vista, não. Vou dar uma olhada nisso com calma e te falo.

Se o pessoal não solucionar isso aí com vbs antes a gente faz um programinha pra pegar essa saída. Mas o script usando o debug funciona no XP, bom, pelo menos aqui funcionou.

1endell

1endell

Ótimo, C-Com!
De qualquer forma, já tenho uma ferramenta pra quando eu for usar o XP.
Testei numa Máquina Virtual aqui e funfou mesmo.
Muito obrigado!

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos