moonlight Posted May 15, 2018 at 06:21 PM Report #610568 Posted May 15, 2018 at 06:21 PM Olá, sou novo aqui. Mas já ando há muito tempo na ptnet e vim aqui para vos chatear um pouco. Não sei exactamente onde colocar esta questão. Se neste tópico se no javascript. Já vão perceber porque Então é assim: tenho pelo menos 1 bot eggdrop, gosto de programar em tcl. Já tinha com sucesso antigamente pôr o bot a dar-me info pró canal de irc sobre o status do router, ligação e afins. Na altura, tinha um zyxel p660w-ti v3 e depois fiz um script tcl para um thomson. Posso mais tarde talvez copiar codigo meu em tcl mas reparei que nao existem secção tcl no Portugal-a-programar e se existe, não vi. Com a ajuda dos cookies, pude então entrar no meu zyxel e o script de tcl agarrava na info e botava coisas no canal. Mas mudei para fibra no ano passado. Tentei fazer o mesmo com o router de fibra.gr241ag da altice labs mas reparei que tem muitos ficheiros js, alguns htmls, etc. E o problema é que não consegui fazer o bot entrar no router e obter info. Sei que o utilizador é meo e passe é meo. Eu tentei algumas formas mas não consegui. Tentei usar https://192.168.1.254/index.html?username=meo&password=meo&submit=submit etc etc. E sim eu usei o Rede nas ferramentas de desenvolvimente do browser firefox e não vi nada a ser mandado, nem headers e cookies. Se alguem tivesse este router ou semelhante e usasse uma consola para tentar fazer login. Cumprimentos
M6 Posted May 17, 2018 at 09:04 AM Report #610583 Posted May 17, 2018 at 09:04 AM Bem vindo. 🙂 TCL? Ora ai está uma coisa onde eu não bato código há mais de 15 anos, nessa altura era a minha linguagem de programação profissional, ganhava a vida a bater código TCL! 🙂Mais recentemente fiz uma incursão de novo no TCL a nível profissional há uns 4 anos... Quanto à tua questão, invocar via URL dessa forma (GET) não vais lá. O login é garantidamente feito por POST e dado que é via HTTPS, tenho dúvidas que consigas obter informação visível. Para ultrapassares isso, vais ter de conseguir fazer um form submit em POST. Como te referi, há muito anos que estou longe do TCL, mas de certeza que tens ferramentas para web scrapping equivalentes (senão mesmo iguais) ao "mechanize" do Perl e do Python que te abstraem e simplificam muito a vida para esse tipo de situações. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
moonlight Posted May 18, 2018 at 07:24 AM Author Report #610595 Posted May 18, 2018 at 07:24 AM 21 horas atrás, M6 disse: Bem vindo. 🙂 TCL? Ora ai está uma coisa onde eu não bato código há mais de 15 anos, nessa altura era a minha linguagem de programação profissional, ganhava a vida a bater código TCL! 🙂Mais recentemente fiz uma incursão de novo no TCL a nível profissional há uns 4 anos... Quanto à tua questão, invocar via URL dessa forma (GET) não vais lá. O login é garantidamente feito por POST e dado que é via HTTPS, tenho dúvidas que consigas obter informação visível. Para ultrapassares isso, vais ter de conseguir fazer um form submit em POST. Como te referi, há muito anos que estou longe do TCL, mas de certeza que tens ferramentas para web scrapping equivalentes (senão mesmo iguais) ao "mechanize" do Perl e do Python que te abstraem e simplificam muito a vida para esse tipo de situações. Bom dia, obrigado por responder. Sim, só programo tcl por diversão. O pacote http permite-me ir aos sites e pescar o html das páginas e depois com código tcl é possivel separar o trigo do joio. Não tem de ser https, apesar de o pacote tls estar lá para isso. Usei recentemente este pacote tls para obter os resultados do futebol da primeira liga do site da sapo, o url do sapo tem mesmo de ser https ou não consigo sacar nada do site. Outro projecto que fiz foi um guia de tv. Basicamente o bot saca a programação do site do epg do sapo e armazena offline e é possivel pesquisar e mostrar no canal de irc. E sim, tambem tenho ideia tem de ser por POST, mas estando eu em http://192.168.1.254 e fazer meo/meo no ecrã de autenticação, não venho nenhuma linha POST a ser mandada. Vejo é uma data de javascripts a serem sacados à medida que o browser controi a página e depois o que vejo é um parametro id ou algo do género, não me lembro agora. E uma vez lá dentro do router, o meu código ainda não desenvolvido de tcl, com uma data de regexps e regsubs, serei capaz de apresentar em canal de irc o status do meu router de fibra por exemplo. Quando eu faço logout, o browser mostra-me http://192.168.1.254/login.html. Deduzo que tenho de sacar o html desta página e tentar fazer POST, Ainda não vi atentamente o código. Talvez este fim-de-semana. Também seria giro a meobox disponibilizar uma página mas não... só tem uma porta 8082 que podemos usar para mandar keystokes... Eu fiz foi este snippet tcl https://pastebin.com/Asrzbq2f Apesar de ter mensagens em inglês, fui eu que criei e funcionava bem com o zyxel p660w-t1 v3. Olhando para este snippet, axo que podia eliminar ali uns regsub e meter uns string maps. E depois já aqui tive a ver mas não sei onde meti o código para o thomson mas no entanto tenho outra tcl experimental que usa cookies acho eu. Se eu não tiver projectos este fim-de-semana, tentarei novamente fazer o bot entrar no router de fibra. Ainda ponderei usar telnet ou ssh mas é complicado para mim... Cumprimentos e Obrigado.
M6 Posted May 18, 2018 at 08:56 AM Report #610596 Posted May 18, 2018 at 08:56 AM Boas. Não conheço a biblioteca http do TCL, mas pelo que percebi, "não é mais" do que um curl ou um wget, ou seja, faz pedidos HTTP e pode manipular, até certo ponto, as respostas. É por isso que não consegues fazer login, porque não consegues fazer POST (pelo que vi até tem um método de GET), mas mesmo que consigas não sei se depois consegue manter a sessão. Esses Javascript todos que vez por provavelmente são do bootstrap ou chamadas ajax (em que uma delas até pode ser para fazer a autenticação). O que necessitas é de um mechanize, que te permite navegar mesmo pela página, por exemplo, aceder aos objetos username e password do form e preenchê-los e depois aceder ao botão de submit e pressioná-lo. Deixo-te aqui alguma informação sobre esse tipo de módulo (em Python) pode ser que conheças o equivalente em TCL (eu desconheço): http://mechanize.readthedocs.io/en/latest/ 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar."
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now