... Una vez lo tenga, y como prueba, quiero crear un código básico en python que me diga por ejemplo que IP tengo asignada. Entiendo que en en un sistema operativo de escritorio ejecutaría ese fichero en python, pero en el router, ¿ se ejecutaría sólo? ...
Primero, un poco de teoría.
El usuario se comunica con el ordenador mediante el intérprete de comandos. Éste suele disponer de dos tipos de interfaces de usuario (shell): el de línea de texto (CLI, Command-Line Interface) y el gráfico (GUI, Graphical User Interface), también llamado escritorio.
En un router, capacidad de proceso y memoria son limitadas. OpenWrt no podría mover una interfaz gráfica tipo Gnome o KDE. No obstante, cuenta con una interfaz gráfica Web llamada
LuCI. Por supuesto, también cuenta con una interfaz de línea Almquist Shell (ASH) proporcionada por BusyBox que implementa los comandos más usuales de UNIX.
Ahora, la práctica.
El script más sencillo es el típico Hola Mundo, que en Python será:
Contenido del fichero holamundo.py
print ("Hola Mundo!")
Para ejecutarlo desde la línea de comandos:
phython holamundo.py
Si se quiere ejecutar invocándolo directamente, la primera línea del fichero tiene que informar de cómo tratar el resto del contenido:
Contenido del fichero holamundo.py
#! /usr/bin/env python
print ("Hola Mundo!")
Además, habrá que activarle el atributo de "ejecutable":
chmod 777 holamundo.py
Y, finalmente, ejecutarlo:
./holamundo.py
Para ejecutar un comando automáticamente al arrancar el router, se edita el fichero /etc/rc.local y se le añade una línea que invoque dicho comando.
La IP externa se puede averiguar desde la línea de comandos sin necesidad de Python:
wget -q -O- icanhazip.com
Saludos.