Ir ao conteúdo
  • Cadastre-se

Restar Modem via Script


Posts recomendados

Pessoal, estou precisando criar um arquivo BAT para resetar meu modem quando o arquivo for chamado (uma outra aplicação fará isso).

Tenho um D-Link 500G. Vi um script com isso aqui :huh::

@rem ////// Edite as linhas abaixo com os seus dados

@set ip=10.1.1.1
@set username=admin
@set password=admin
@set comando1=reboot


@rem ///// Não edite as linhas abaixo:

@rem ///// Criação do script vbs

@echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%username%">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%password%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs


@rem ///// Enviando comando

@echo sh.SendKeys "%comando1%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs



@rem ///// Iniciando a sessão de telnet

@start /realtime telnet.exe %ip%
@cscript //nologo telnet.vbs
@del /q telnet.vbs
@call killtelnet.bat

O conteúdo do killtelnet.bat é esse:

"C:/"Arquivos de programas"/USD/afskillproc.exe telnet.exe exitafs

C:/"Arquivos de programas"/USD/wait.exe"

Bom, eu preciso fazer o seguinte... resetar meu modem, e após isso acontecer, preciso que o bat feche, mas após alguns segundo (50 por exemplo:cool:). Pesquisei sobre o comando sleep mas não encontrei quase nada. E não entendi muita coisa desse script aí acima... rs

Gostaria muito que me ajudasse, pois preciso resolver esse problema logo.

Agradeço desde já.:D

Link para o comentário
Compartilhar em outros sites

O script já resseta o modem? Só o que falta é fazer a pausa de 50s?

O WScript é o host do script VBS. Sleep é o método que faz a thread "dormir". Ela aceita um parâmetro, que é o tempo em milissegundos. Então, põe uma chamada no .vbs de "WScript.Sleep 50000" antes do .vbs finalizar.

Ficaria assim:


@rem ////// Edite as linhas abaixo com os seus dados

@set ip=10.1.1.1
@set username=admin
@set password=admin
@set comando1=reboot


@rem ///// Não edite as linhas abaixo:

@rem ///// Criação do script vbs

@echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.v bs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%username%">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%password%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs


@rem ///// Enviando comando

@echo sh.SendKeys "%comando1%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs

REM -- Incluída a pausa de 50s no fim do script que resseta o modem
@echo WScript.Sleep 50000>>telnet.vbs



@rem ///// Iniciando a sessão de telnet

@start /realtime telnet.exe %ip%
@cscript //nologo telnet.vbs
@del /q telnet.vbs
@call killtelnet.bat

Deve fazer o que você quer...

JP

Link para o comentário
Compartilhar em outros sites

Vou tentar... o que acontece é o seguinte... o modem parece que reseta sim, porém, o killtelnet.bat não fecha... eu só consigo usa se eu fechar ele manual, senão o programa que chama ele trava...

Analisando o que você escreveu...

Essa parte sei o que é... ele já "logou" no modem, e está enviando o comando reboot pela variável (ou parâmetro) comando1.

@rem ///// Enviando comando

@echo sh.SendKeys "%comando1%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs

Agora isso que você escreveu... eu faço esperar 50 segundos para passar para a próxima parte... é isso?

REM -- Incluída a pausa de 50s no fim do script que resseta o modem
@echo WScript.Sleep 50000>>telnet.vbs

Isso aqui eu não entendi o que faz pra te falar a verdade... me explique por favor...?

@rem ///// Iniciando a sessão de telnet

@start /realtime telnet.exe %ip%
@cscript //nologo telnet.vbs
@del /q telnet.vbs
@call killtelnet.bat

Então meu problema é maior (eu acho) em fechar esse killtelnet.bat.... porque seu eu fechar ele manualmente o programa dará continuidade

O conteúdo do killtelnet.bat é esse:

C:/"Arquivos de programas"/USD/afskillproc.exe telnet.exe exitafs
C:/"Arquivos de programas"/USD/wait.exe

Eu havia pensando antes em fazer o seguinte.... depois da linha wait eu dar um "sleep 50000" (só simulando, rs) e então forçar o fechamento do killtelnet.bat... será q isso resolveria? porque pelo que entendi o seu código inserido simplesmente espera 50seg para passar pra parte seguinte (@rem ///// Iniciando a sessão de telnet), não é mesmo?

Desde já agradeço a atenção... se puder continuar a tentar me ajudar... quando eu chegar em ksa vou colocar esse seu código, mas acho que não vai funcionar nao... ou estou errado ao interpretar os código?

Att.

Link para o comentário
Compartilhar em outros sites

Vou comentar o que faz cada parte do "código":

- cria e seta valores para as variáveis que serão usadas no restante do programa. Quem fez o .bat aí foi caprichoso, e fez isso só para facilitar a distribuição. Assim, você só altera os dados, sem precisar meter a mão no "código" em si.


@rem ////// Edite as linhas abaixo com os seus dados

@set ip=10.1.1.1
@set username=admin
@set password=admin
@set comando1=reboot

- esse trecho cria um arquivo chamado "telnet.vbs" com instruções que serão "enviadas" para o telnet. Essas chamadas de sh.SendKeys simulam como se o usuário tivesse digitado o texto do parâmetro. O "~" é como se o usuário tivesse pressionado o ENTER.


@rem ///// Não edite as linhas abaixo:

@rem ///// Criação do script vbs

@echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.v bs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%username%">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%password%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs

@rem ///// Enviando comando

@echo sh.SendKeys "%comando1%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs

REM -- Incluída a pausa de 50s no fim do script que resseta o modem
@echo WScript.Sleep 50000>>telnet.vbs

Uma vez criado o script acima, ele executa o telnet e chama o script que vai mandar as instruçoes para o telnet.

Só que o script não finaliza o telnet amigavelmente. Então ele chama o killtelnet.bat para finalizá-lo.


@rem ///// Iniciando a sessão de telnet

@start /realtime telnet.exe %ip%
@cscript //nologo telnet.vbs
@del /q telnet.vbs
@call killtelnet.bat

Esses dois programas existem em seu computador (nesse caminho)? :

"C:/"Arquivos de programas"/USD/afskillproc.exe

C:/"Arquivos de programas"/USD/wait.exe"

O primeiro deveria matar o processo "telnet.exe".

Se não estiver funcionando, você pode tentar finalizar o telnet amigavelmente. No lugar onde pus a pausa, tenta por isso aqui. Vai mandar um "escape" para o telnet (Ctrl-]) e depois dar o comando para finalizar (quit).


@echo sh.SendKeys "^]" >>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "quit">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs

Daí nem precisa por o Sleep de 50 segundos.

Desconfio que você não tem esse afskillproc.exe no diretório "C:/"Arquivos de programas"/USD. (aliás, que sintaxe maluca... Windows com "/" ao invés de "\" e com as aspas tudo bagunçadas! Mas mesmo assim ele chamaria a aplicação, caso exista o tal executável nessa pasta.

JP

Link para o comentário
Compartilhar em outros sites

Bom, vamos lá...

com o código assim:

@rem ****************************************
@rem * * Script reset modem router * *
@rem * * [URL="http://www.brazukas.org"]www.brazukas.org[/URL] * *
@rem * * por: willB * *
@rem ****************************************


@rem ////// Edite as linhas abaixo com os seus dados

@set ip=10.1.1.1
@set username=admin
@set password=admin
@set comando1=reboot


@rem ///// Não edite as linhas abaixo:

@rem ///// Criação do script vbs

@echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%username%">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%password%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs


@rem ///// Enviando comando

@echo sh.SendKeys "%comando1%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs

REM -- Incluída a pausa de 50s no fim do script que resseta o modem
@echo WScript.Sleep 50000>>telnet.vbs



@rem ///// Iniciando a sessão de telnet

@start /realtime telnet.exe %ip%
@cscript //nologo telnet.vbs
@del /q telnet.vbs
@call killtelnet.bat

Não funcionou...

E assim..

@rem ****************************************
@rem * * Script reset modem router * *
@rem * * [URL="http://www.brazukas.org"]www.brazukas.org[/URL] * *
@rem * * por: willB * *
@rem ****************************************


@rem ////// Edite as linhas abaixo com os seus dados

@set ip=10.1.1.1
@set username=admin
@set password=admin
@set comando1=reboot


@rem ///// Não edite as linhas abaixo:

@rem ///// Criação do script vbs

@echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%username%">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "%password%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs


@rem ///// Enviando comando

@echo sh.SendKeys "%comando1%">>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs


@echo sh.SendKeys "^]" >>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "quit">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs
@echo sh.SendKeys "~">>telnet.vbs
@echo WScript.Sleep 500>>telnet.vbs



@rem ///// Iniciando a sessão de telnet

@start /realtime telnet.exe %ip%
@cscript //nologo telnet.vbs
@del /q telnet.vbs
@call killtelnet.bat

Tbem nao funcionou...

Bom, o programa afskillproc.exe tem ele sim... sobre a sintaxe eu nao sei o que falar...

bom, acontece o seguinte, a tela do telnet.bat fecha, mas a janela do killtelnet.bat não... será q não deveria colocar um comando na janela do killtelnet.bat pra manda ela fechar depois de uns 50 seg (esse tempo é pra meu modem já ter reconectado...), depois da linha que chama o programa wait.exe???

Bom, aguardo uma ideia sua fariajp.. ou de qq outro que saiba como me ajudar... rs

T+

Link para o comentário
Compartilhar em outros sites

Cara, o killtelnet.bat chama isso aqui:

"C:/"Arquivos de programas"/USD/afskillproc.exe telnet.exe exitafs

C:/"Arquivos de programas"/USD/wait.exe"

O primeiro deve matar não amigavelmente o telnet. O segundo faz ele dar uma pausa, de sabe deus quanto tempo... Tenta tirar esse wait dai e ver se ele não termina o bat normalmente.

JP

Link para o comentário
Compartilhar em outros sites

Cara, o killtelnet.bat chama isso aqui:

"C:/"Arquivos de programas"/USD/afskillproc.exe telnet.exe exitafs

C:/"Arquivos de programas"/USD/wait.exe"

O primeiro deve matar não amigavelmente o telnet. O segundo faz ele dar uma pausa, de sabe deus quanto tempo... Tenta tirar esse wait dai e ver se ele não termina o bat normalmente.

JP

JP, funcionou quase!!!! uyahyahyua

Bom, eu tirei a linha do wait.exe... beleza, ele resetou, e fechou, mas agora tenho um outro problema... vou te explicar em qual aplicação estou usando isso..

Bom, achei um programa na net pra baixar automatico rapidshare, megaupload, etc... existe um agendador nesse programinha q fiz assim... quando ele tenta obter um link pra download e não consegue, ele executa um programa, no meu caso ele chama o telnet.bat pra poder resetar o modem e pegar um novo IP, assim conseguindo baixar o arquivo... so que meu modem demora uns 50 seg pra conectar novamente, então ao tirar o wait.exe, a tela fecha, então ele tenta pegar o IP novamente e como nao consegue reboota o modem novamente....

O que preciso agora então é fazer com que, após a linha

"C:/"Arquivos de programas"/USD/afskillproc.exe telnet.exe exitafs"

eu coloque um tipo de sleep 50000 pra que só quando ele fechar (somente após os 50 seg) o programa tente pegar novamente o link, aí ja deu tempo do modem conectar novamente (o modem é roteado).... sacou???

É possível fazer isso não é?!?!? diz que sim, por favor... rsrs...

E novamente, muuuuito obrigado... você já ajudou bastante cara...

Aguardo uma posição sua.

Att.

Link para o comentário
Compartilhar em outros sites

uyhauyahyuahayuhayuahayuahayuhayuhyuahauyahuayhauyhauyahuyahauyhauyha

uyhauyahuyahuayhauyhauyhayuah!!!!!!!!!!!!!!!!!!!!!!!!!!

JP, lhe devo quase que minha vida!!!! uyahyuahayuhyua... cara, te garanto que aqui na minha região muita gente vai te dever uma cara..... conseguiu velho!!!! valeu mesmo... rsrs...

Muito obrigado cara... continuarei testando, e se der pau te chamo de novo hein...rsrs..

Abraço cara...

Link para o comentário
Compartilhar em outros sites

  • 9 meses depois...
  • 4 meses depois...

Para quem for copiar e criar um bat com este script, so preste atenção na linha logo abaixo de "Criação do script vbs", foi dado um espaço na extensão, em vez de estar ".vbs" ela esta ".v bs" nesta linha veja :

"@echo set sh=WScript.CreateObject("WScript.Shell")>>telnet.v bs"

dae o baguio não vai.

hhehehehe, valeu pelo script, abraço a todos.

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

Tô com um problema besta nesse script! Uso o JDownloader e coloco pra usar o bat quando alguma conexão fica instavel ou para não aguardar o tempo do rapidshare. Funcionou (demorou 6 minutos para o JD verificar o ip novo, mas funcionou), entretanto, no final o telnet.exe fica aberto na tela e eu gostaria de fecha-lo pelo script. O que faço??

Screen:

batk.th.jpg

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...
  • 9 anos depois...

Estou postando agora porque entendo ser muito relevante.

 

Esse script pode não funcionar para muita gente, porque o comando reboot "@set comando1=reboot" não está na raiz do sistema do modem/roteador, no meu caso só funcionou em: config system reboot. Tem que saber o caminho (path) do comando "reboot" do seu modem, o meu ficou assim: @set comando1=config system reboot ...

 

Abraços.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!