Script para reiniciar IP pública en COMTREND CT-536+ (Linux)

Buenas, hace unos meses me surgió el "problema" de que no podía descargar más de megaupload porque había sobrepasado el límite por IP, así que me puse a investigar como forzar el cambiado de IP pública en mi modem/router COMTREND CT-536+ de Jazztel. Indagando entré por telnet en el router y mirando por google encontré una serie de comandos para reiniciar la IP pública, así que me dispuse a hacer un script de shell para automatizar la tarea de reiniciar la IP. Hoy he tenido que volver a usar el script y me he dicho... voy a ponerlo en el foro de EOL por si a alguien le hace falta :)

Aquí lo tenéis:
#!/bin/sh

host=192.168.1.1
port=23
user=aquí_ponéis_vuestro_usuario
pass=aquí_ponéis_vuestra_contraseña
cmd1=sh
cmd2="adsl connection --down"
cmd3="adsl connection --up"
cmd4=reboot

( echo open ${host}
sleep 1
echo ${user}
sleep 1
echo ${pass}
sleep 1
echo ${cmd1}
sleep 2
echo ${cmd2}
sleep 2
echo ${cmd3}
sleep 2
echo ${cmd4} ) | telnet


¿Qué se necesita para que funcione el script?

Si no tienes el cliente de telnet, lo debes instalar.

¿Qué hace el script?

El script abre una conexión Telnet al la dirección que está en la variable "host" (192.168.1.1 es la dirección por defecto del router, si la has cambiado por alguna razón deberías de cambiarla en el script) usando el nombre de usuario "user" y la contraseña "pass". Luego entra en el modo consola del router y cierra la conexión de adsl (en éste momento verás que se apaga la luz de ADSL y se enciende la de ALARM), vuelve a abrir la conexión de adsl y reinicia el router. Durante el proceso, como es lógico, se te cortará internet :)

No se usar un script ¿Qué hago con ese código que has pegado ahí?

Primero copia el código, luego abre un editor de texto y pega el código ahí. Donde poner "user=" borra lo que hay detrás del "=" y pon ahí el usuario con el que administras el router, donde pone "pass=" borra lo que hay detrás del "=" y pon ahí la contraseña de ese usuario. Guarda el archivo con el nombre que quieras por ejemplo "cambiaip". Ahora abre una terminal de consola y sitúate en la carpeta en la que esté el archivo, escribes "sh cambiaip" y deja que vaya haciendo cosas.

Pues nada, ahí está, para el que lo necesite.
Ostras pues muchas gracias, yo tengo ese modelo!! XD

Cuando quiero descargar de MegaUpload y quiero reiniciar lo hago con JDownloader, que soporta el modelo del router.

Me guardo el script! :)
El JDonwloader no me gusta... ralentiza el ordenador que da gusto, y cuando lo usaba no me iba demasiado bien lo de reiniciar la IP. Para descargar de Megaupload uso Tucan, que consume muchos menos recursos y descarga igual.
A modo de curiosidad, ¿no bastaría con hacer solo el reboot?

Saludos
Kedao escribió:A modo de curiosidad, ¿no bastaría con hacer solo el reboot?

Saludos


No, el reboot lo que hace es apagar y encender el aparato, es como darle a interruptor. Puede que, si apagas el aparato y lo dejas 5 o 10 minutos apagado y vuelves a encenderlo se cambie la IP (no lo he probado).

De la forma que lo he puesto se cierra la conexión dsl y se vuelve a abrir, de ésta forma "obligas" a renovarse la IP. Si apagas y enciendes el router sin más, o si haces un reboot, supongo que se quedarán guardados algunos datos de conexión para hacer más rápido el sincronizado una vez vuelto a encender.
Esto funciona en Win? Si es que no, alguien sabe de uno que funcione bien bajo Windows?
Duqe escribió:Esto funciona en Win? Si es que no, alguien sabe de uno que funcione bien bajo Windows?


El script en sí no funciona en Windows, pero puede abrir una terminal de consola y ejecutar los comandos a mano.
En Windows XP para abrir una terminal de consola te vas a Inicio > Ejecutar y ejecutas cmd. En Vista y 7 le das a Inicio y en buscar escribes cmd

Cuando tengas el terminal de consola escribes:
telnet 192.168.1.1 con ésto abres la sesión telnet con el router te pedirá tu usuario y tu contraseña.
Luego escribes:
sh con ésto abres la consola de comandos del router
Luego:
adsl connection --down
Luego:
adsl connection --up
Y por último
reboot

Al igual que yo he hecho un shell script para Linux, supongo que se podrá hacer un archivo Batch para ejecutarlo en Windows.
Pues ahora que me acuerdo, mi router tiene desactivado el telnet. Ya que me fastidiaba el wifi cuando lo activaba.

No habria otra forma de hacerlo?
que tal amigos, sé que hace mucho tiempo que se dejó este hilo y no sé si hay algún otro más interesante pero la verdad es que este lo veo muy util para lo que yo busco a ver si alguien que pase por aquí me puede ayudar en un pequeño problema con mi router comtrend,ya que que cada vez que me cambian la ip el router se me queda colgado y como no sea que esté fisicamente ahí para apagarlo y encenderlo no encuentro la manera de reactivar este cuando estoy fuera y me quedo sin servicio de internet.
he leido muchísimo sobre esto, aunque con tantas opiniones me quedo casi igual, lo que busco es algo como lo que he leido por algunos foros de crear un comando dentro del mismo router que al hacer ping diariamente,si es ok,todo va bien,pero si el ping hacia fuera no responde el mismo script hace que se reinicie el router.
no entiendo mucho de esto pero si se pudiese hacer en windows,sería lo que busco,ya que lo que he encontrado es solo para linux.
un saludo y a ver quien me orinta,gracias
wenass

modificando un poco el script del hilo, esta version comprueba la conexion con tu isp,
en caso de estar caida, reinicia el adsl(que tenga telnet abierto y use linux internamente).

no se si podria hacer un .bat con este script bash, hace demasiado tiempo que no uso los archivos batch, este es para linux
en cuanto a automatizar, en linux usaria el cron, en windows supongo que el programador de tareas..

una solucion es instalar el bash en windows...
otra es mirar de instalar openwrt en el router(si es compatible).
es un linux embebido i se puede configurar i adaptar todo lo que quieras.

#!/bin/bash
dns=80.58.61.250      #pon aqui la dns de tu isp, ahora esta puesta la de telefonica
host=192.168.0.1    #aqui la ip de tu ruter
port=23
user=usuario      #cambia usuario por el del router
pass=contraseña      #cambia contraseña por la del router
cmd1=sh
cmd2="adsl connection --down"
cmd3="adsl connection --up"
cmd4=reboot

if `ping -c 1 $dns> /dev/null` ;then
echo Servidor DNS:Online
else
echo Servidor DNS:Offline
echo Reiniciando ADSL

( echo open ${host}
sleep 1
echo ${user}
sleep 1
echo ${pass}
sleep 1
echo ${cmd1}
sleep 2
echo ${cmd2}
sleep 2
echo ${cmd3}
sleep 2
echo ${cmd4} ) | telnet

fi
Lok escribió:wenass
...
otra es mirar de instalar openwrt en el router(si es compatible).
es un linux embebido i se puede configurar i adaptar todo lo que quieras.
...


Creo que no existen drivers para el modem ADSL en ese router y que si o si hay que poner el router de la compañia.

EDITO:
Upsss Si que hay drivers y funcionan .......
http://wiki.openwrt.org/toh/comtrend/ct536plus
gracias lo modifique un poco para el router hg532c de jazztel.
    #!/bin/sh

    host=192.168.1.1
    port=23
    user=[color=#FF0000]poner vuestro usario[/color]
    pass=[color=#FF0000]poner vuestra contraseña[/color]
    cmd1=sh
    cmd2="echo 1 > /var/wan/ppp256/dial"
    cmd3="echo 3 > /var/wan/ppp256/dial"
    cmd4=reboot

    ( echo open ${host}
    sleep 1
    echo ${user}
    sleep 1
    echo ${pass}
    sleep 1
    echo ${cmd1}
    sleep 2
    echo ${cmd2}
    sleep 2
    echo ${cmd3}
    sleep 2
    echo ${cmd4} ) | telnet


Funciona con jdownloader
11 respuestas