View Single Post
  #1  
Old 24.03.2013, 09:54
Paclanc Paclanc is offline
DSL User
 
Join Date: Jul 2010
Location: México
Posts: 35
Default Solucion para reconexion modem Technicolor TG582n

Pues después de muchas horas de busqueda, he encontrado una solución (que debe ser mejorada para que no haya errores) para la reconexión en este módem tan problemático.

Empezare explicando por que no se puede hacer con el método "LiveHeader/Curl".

JDownloader no puede hacer la reconexión, porque a pesar de que el script es funcional el problema esta a la hora de que JD intenta iniciar sesión en el módem. Esto es porque el módem utiliza un sistema de seguridad llamado "Digest access authentication" (Wikipedia (en ingles) http://en.wikipedia.org/wiki/Digest_...authentication), este sistema basicamente lo que hace es cifrar la contraseña antes de ser enviada al modem, lo que aumenta la seguridad que si solo se enviara texto plano.

Entonces, cuando tu escribes la contraseña para iniciar sesión, el módem no resive la contraseña como la escribiste, si no que recibe una cadena de caracteres que es la contraseña cifrada; pero este sistema también hace que la generación de claves sea diferente para cada inicio de sesión y rechaza la anterior, por lo que si una vez al módem le llega una cadena (4b72b2d7a46be0b4176ec5356daf48f0 es algo así) la próxima vez le llegara una completamente diferente, por lo que rechazara la anterior.

Ahí yace el problema, JDownloader tan solo graba en el script la cadena que se genera cuando creas el script, por lo que la próxima vez que intentes hacer la reconexión con JD, el módem rechazara la petición ya que esa cadena ya había sido enviada antes (esto también afecta por ejemplo a la varita mágica en Opera porque el fundamento es el mismo que con JDownloader:thumbdown:).

Aquí hay entonces una petición para que el equipo de JD se ponga atento con este problema y cree un método para iniciar sesión como lo hace el navegador.

Entonces todo lo anterior queda descartado, no se puede hacer reconexión con ese método.

La solución llega de la mano de Telnet, un protocolo de comandos con el que el módem es compatible (esta solución es muy obvia, aunque encontrar los comandos para desconectar el módem y reconectarlo a Internet fue algo MUY tardado).

Desde la interfaz web, las opciones de configuración son muy limitadas. Cosas como cambiar el DNS y demás se deben hacer desde Telnet (Deben tenerlo activado en windows, busquen en google como, es muy fácil).

El Símbolo del sistema, tecleamos "telnet 192.168.1.254" (todo sin comillas) para entrar al modo Telnet del módem. Después aparecerá una frase que dice Username : ahi escriben el Usuario, presionan enter y después les pedirá la contraseña. Al iniciar sesión aparecerá una simple interfaz indicando que ya están adentro. para ver todas las opciones que se pueden hacer, escriban "help" para ver la ayuda, ahí aparecerán los comandos utilizables. Si quieren moverse en forma de menús por todas las opciones, escriban "menú" y de moverán con las flechas a través de las opciones.

Entonces si con Telnet podemos hacer uso de todas las opciones avanzadas para configurar el módem, algo tan simple como desconectar y reconectar el módem de Internet para que se cambie la ip seguro que si es posible; el problema es que esta opción no es para nada obvia de hacer. Si entraron al menú seguro que se darán cuenta de ello. Ni en Internet fue fácil encontrar la solución, pero lo hize (**External links are only visible to Support Staff****External links are only visible to Support Staff**).

El comando "ppp ifdetach intf=Internet" desconecta al módem de Internet, y "pppp ifattach intf=Internet" lo conecta (lo hubiese encontrado yo mismo, pero no sabia lo que significaba attach).

Genial, ya podemos cambiar la ip con telnet, pero ahora hay que automatizar el proceso.

No soy un usuario avanzado en esta área, pero logre dar con la solución. Para hacer el proceso automático que haga las funciones en telnet cree un archivo .vbs que contenga en su interior

Option explicit
Dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")
oShell.Run "telnet"
WScript.Sleep 100
oShell.Sendkeys "open 192.168.1.254~"
WScript.Sleep 100
oShell.Sendkeys "USUARIO~"
WScript.Sleep 50
oShell.Sendkeys "CONTRASEÑA~"
WScript.Sleep 100
oShell.Sendkeys "ppp ifdetach intf=Internet~"
WScript.Sleep 2000
oShell.Sendkeys "ppp ifattach intf=Internet~"
WScript.Sleep 100
oShell.Sendkeys "exit~"
WScript.Sleep 100
oShell.Sendkeys "q~"
WScript.Sleep 100
oShell.Sendkeys "quit~"
Wscript.Quit

Escriben esto en el bloc de notas y lo guardan con el nombre que quieran pero con la extensión .vbs

Esto hará que se habrá el programa telnet, se conecte con el modem, inicie sesión (cambien las palabras USUARIO y CONTRASEÑA por su usuario y contraseña), desconecte el módem de internet, luego lo reconecte, se termine la sesión telnet y luego cierre la ventana cmd (aún no se como hacer que no aparezca esa ventana).

Como dije antes, me tope con esta forma y la personalice un poco, de igual manera el script puede ser creado con otras formas o ser mejorado, pero yo no se hacerlo.

Bien, ahora al dar doble clic sobre el archivo que creamos, se ejecutaran los comando y lograremos cambiar la ip tan solo con este archivo (pueden comprobar que la ip se cambio) sin tener que hacerlo desde el explorador. Pero ahora hay que hacer que JDwnloader utilice esto para hacer la reconexión; aquí encontré problemas a la hora de hacerlo funcionar con JD, tal y como se muestra en:

http://board.jdownloader.org/showthr...19633&langid=8
y
http://board.jdownloader.org/showthr...29571&langid=8

La forma para hacer la reconexión con JD es utilizar la opción "Externo" y pegar la ruta donde se encuentra nuestro archivo vbs en el campo "Comando" (C:\Users\Usuario\Documents\reconnect.vbs algo así). Esto debería hacer que JD invoque al archivo para que cambie la ip, pero a mi me dio varios problemas antes de funcionar medianamente bien.

Por ejemplo, primero no hacia nada, la ventana de cmd no aparecía por lo que el archivo vbs nunca era ejecutado. Después si que salia la ventanita y se veia que se hacia el cambio de ip, pero JD no detectaba el cambio y decía "Reconexión fallida". Después si lo detectaba pero se tardaba casi un minuto o mas en detectarlo, luego si lo detectaba en alrededor de 15 segundos y luego se volvía a tardar mucho. Como ven, JD tiene problemas para manejar los archivos .vbs

Como lo tengo ahora, que es como se los pase, ya funciona pero con cierta tardanza. No se si en la opción Otras, abajo de Reconexión y Router se pueda solucionar esto. No se bien para que son esos campos, pero cuando los cambie mejoraron la respuesta de JD.

En tiempo de espera para primer comprobación tengo 5
En repeticiones máximas tengo -1
En esperar IP nueva tengo 30, que es el valor mínimo.

Así entonces al hacer la prueba con el botón cambiar ip, por fin se logro la reconexión satisfactoria.

Como ven, es algo problemático que se debe mejorar, pero yo no tengo muchos conocimiento así que no sabría como hacerlo, pero por lo pronto ya podemos descargar sin espera entre descargas. En este caso JD tiene que mejorar su sistema de reconexión para:
  1. Iniciar sesión con el sistema Digest access authentication
  2. Mejorar su manejo de archivos externos, en especial los vbs.
  3. Tener una buena documentación en español para este apartado, ya que actualmente no hay ninguna.

Pues bien, espero que alguien ayude a mejorar este metodo que actualmente puede fallar.

Espero haberlos ayudado. Saludos.
Reply With Quote