Cambiar ip del modem desde bash

Muchas veces cuando queremos descargar archivos desde servidores que poseen una limitación de descargas por IP, necesitamos cambiar el IP para saltar esa limitación.

Voy a mostrar como reiniciar el módem desde la consola y luego como hacer un script para automatizar el proceso.

Consola

Bueno como introducción les diré que la mayoría de los modems que entrega Arnet en Argentina poseen un servidor telnet, así que nos conectaremos por ahí. Algunas distribuciones no traen el cliente telnet instalado, así que debemos instalarlo. En Debian y derivados:

sudo apt-get install telnet

Para conectarnos al módem hacemos:

telnet 10.0.0.2

donde 10.0.0.2 es la IP del módem. Una vez echo esto, la consola nos mostrará algo parecido a lo siguiente:

Ahora debemos ingresar usuario primero y contraseña después.

En los módems de arnet los datos de acceso son:

Usuario: admin
Contraseña: tomenage

o

Usuario: admin
Contraseña: alvlgeddl

Una vez logueado usamos help para ver la lista de comandos disponibles,

Veremos que uno de los comandos es reboot. Entonces usaremos reboot para reiniciarlo.

Script

Para el script necesitaremos los siguientes programas: lynx-cur, libnotify-bin.

En Ubuntu:

sudo apt-get install lynx lynx-cur libnotify-bin

Abrimos un editor de texto.

Para saber si el módem ha cambiado de IP necesitamos chequear el IP público antes y después de reiniciar el módem. Para ello hacemos:

IP=$(lynx -dump http://cfaj.freeshell.org/ipaddr.cgi)

y le daremos 3 segundos de espera para la respuesta

sleep 3

luego mostraremos el IP en las notificaciones del escritorio

notify-send -i info "Actual IP" "$IP"

Ahora nos conectaremos al modem.

Es bueno comprobar la velocidad de respuesta del módem antes de entrar en esta parte

(sleep 2 ; echo "admin" ; sleep 2; echo "alvlgeddl" ; sleep 2 ; 

echo "reboot" ; sleep 65 ; echo "exit") | telnet 10.0.0.2

donde “sleep 2” es el tiempo que tarda en responder el módem y “sleep 65” el tiempo aproximado que tarda en reiniciarse el dispositivo.

Es importante aproximar el tiempo de respuesta por exceso y no por defecto, ya que si no el script enviará comandos antes de que el módem esté listo para recibirlos

Ahora chequeamos nuevamente el IP público:

IP_NUEVO=$(lynx -dump http://cfaj.freeshell.org/ipaddr.cgi)

esperamos 3 segundos por la respuesta y comprobamos si son distintos:

if [ "$IP" != "$IPNUEVO" ]; then (notify-send -i info "El IP ha cambiado" 
"$IPNUEVO"); else; (notify-send -i dialog-warning "El IP no ha cambiado" "$IPNUEVO"); fi

Eso ha sido todo.

Ahora agregamos el shebang al principio del documento, guardamos como
“reiniciarip”, le damos permisos de ejecución y lo copiamos a la carpeta
“/usr/bin”.

chmod +x reiniciarip

sudo cp reiniciarip /usr/bin

Para ejecutarlo solo escribimos en la consola “reiniciarip”

De esta manera ha quedado el script:

El lanzador debe colocarse en /usr/share/applications/


5 comentarios

  1.   Usemos Linux dijo

    Así es, compañero!
    Un fuerte abrazo!
    Pablo.

  2.   fraterneo dijo

    Excelente post. Ideal para los que no tienen IP fija.

  3.   Carlos dijo

    Jajaja como si todo el mundo tuviera Arnet, y para los que tienen Speedy, Telecentro, Fiberporongatel, Claro, Telmex, etc ??? Una cagada tu informe

  4.   Franco Valledor dijo

    El script es para un módem en particular, debes cambiar los comandos por los que tu necesitas. Primero desde la consola haces: telnet 10.0.0.2 (10.0.0.2 es la ip del modem por lo general, si no lo es cámbiala en el script). Luego escribes el usuario, en los módems de arnet es admin y despues la contraseña que puede ser tomenague o alvlgeddl o alguna otra. Luego escribes help y se te mostrará todos los comandos posibles, debe haber alguno llamado rebbot o restart. Osea que lo que tienes que cambiar en el script es: ip del módem, usuario y contraseña, comando para reiniciar. Seguramente el problema es que la contraseña no es esa, prueba cambiarla por tomengue o buscar en google por alguna otra… Saludos

  5.   kendy dijo

    Hey amigo me parece interesante el artículo pero el script no me reinicia el modem,
    por lo tanto el ip no cambia, qué pasará?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *