Pequeño bot para reconectar router con proveedor

Ante el inconveniente que se me presentaba con un enrutador en el que eventualmente se terminaba la conexión ppp con mi proveedor de internet y que no lograba reestablecerla automáticamente al reiniciar el dispositivo me di a la tarea de hacer un pequeño script que revisara el estado desde otro host. Esto también es posible hacerlo desde la interfaz gráfica a través de http pero no quería brindar los datos de autenticación a los más pequeños del hogar para que no se saltaran el control parental.

Image

Armado con perl y un par de módulos encontrados en CPAN (UserAgent y Request) puse manos a la obra.

Básicamente se autentica a nivel de http y en dependencia del texto en el botón del formulario en la página principal recoje el actual estado. En caso de estar desconectado hacer submit en el formulario para conectar.

#!/usr/bin/perl

use LWP::UserAgent;

use HTTP::Request;

my $ua = LWP::UserAgent->new(agent=>’Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.162 Safari/535.19′);

$ua->credentials(“192.168.1.254:80″,”Thomson Gateway”,”admin”,”dsl3N!T31″);

$ua->show_progress(‘TRUE’);

my $response = $ua->get(‘http://192.168.1.254/’);

if ($response->is_success)

{

if($response->content =~ m/Desconectar/i)

{

print “Se encuentra conectado”;

}
else
{

}

}

else

{

die $response->status_line;

}

De ipegüe un poco más de nmap con parámetro “O” para intentar identificar el sistema operativo, según la base de datos de seclist es Thomson ST 536i

Image

Se puede ver el puerto 23 para administrar vía telnet.

Los datos de acceso son los mismos que para la interfaz gráfica.

  • user: admin
  • password: dsl3N!T31

Image

Una especie de dibujo dibujo 3d en ascci de parte de Thomson y ya estamos listos para administrar.

Les dejo una lista de los comandos disponibles.

Image

2 comentarios
  1. erjaimer dijo:

    Está bastante curioso, pero ¿ no crees que usando curl te sobraría ? y un pequeño shell script por supuesto, si lo que se quiere solamente es saber si se está conectado o no.

    De todas formas si hay que hacer procesado o algo más complejo veo perfecto Perl, me apunto tu aporte es muy bueno.

    Un saludo.

    • Si, la idea era hacer submit en el botón de contectar en el caso de que estuviese desconectado además que necesitaba autenticarme automáticamente y con perl es bastante sencillo. Por ahora no he tenido tiempo de leer extensivamente la documentación del módulo LWP de perl pero tiene funciones interesantes para este tipo de trabajos
      Saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: