Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: DonQuimi en 2 Febrero 2016, 11:19 am



Título: Redirigir la pagina de administracion de un router
Publicado por: DonQuimi en 2 Febrero 2016, 11:19 am
Buenos dias,

Estoy desarrollando una app para smartphone que interactua con una Raspberry Pi (un miniordenador con Linux) y que, entre otras cosas, me gustaria que lanzase una ventana de navegador dirigida a la pagina de administracion del router, un Livebox de Orange, al pulsar un botón.

Desafortunadamente el Livebox solo permite el acceso remoto desde una IP especifica, indicada previamente en la pagina de administración del router, por lo que es imposible preveerla si se pretende acceder desde un smartphone.

He pensado que, ya que estoy accediendo a un ordenador con Linux desde el exterior (esto ya funciona correctamente), quizás se pudiera hacer que sea la Raspberry quien solicite la pagina al router, ya que se encuentra en la misma red, y redirija la pagina al smartphone, del que se conocerá la IP en el momento de efectuar la petición.

No estoy seguro de si se podria implementar un script python que se encargue de esta operacion. Soy nuevo en python y en redes, en general.

Por supuesto, no solicito el script ya escrito, solamente una orientación sobre el mejor metodo de lograr este objetivo.

Muchas gracias por vuestra atención.


Título: Re: Redirigir la pagina de administracion de un router
Publicado por: DonQuimi en 16 Febrero 2016, 13:38 pm
Buenos dias,

Sigo con lo mismo.

De momento he conseguido redirigir hacia a fuera de la red la pagina principal del router. He abierto un puerto que queda escuchando a la espera de una peticion GET, y al recibirla, devuelve como resultado la pagina principal del router.

Código:
#!/usr/bin/python
# -*- encoding: utf-8 -*-

import os
import sys
from flask import Flask, request
import urllib2

app = Flask(__name__)

@app.route("/")
def index():
        response = urllib2.urlopen('http://192.168.1.1:80')
        return response.read()

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=8989, debug=False)

Pero claro, no muestra correctamente el contenido que no es html, ni funcionan los codigos javascript...

Alguna otra manera de hacerlo?

Gracias de antemano!