Le site perso de Thomas Bigot

Informatique

Photos

Divers

2. L'interpréteur web de la freebox

2.1. Présentation

À première vue, la freebox dispose d'un navigateur web minimal qui permet d'afficher toutes les incrustations, que ce soit pour la fonction media player ou pour le mode tv classique.

La partie visible pour l'instant de cet serveur web, est vlc. Il fait serveur http classique sur le port 80 de votre ordinateur. Pour s'en convaincre, après avoir lancé vlc-fbx.sh (ou son collègue le .bat), lancez un navigateur web sur l'adresse http://127.0.0.1:8080 . Normalement, vous devriez voir une page d'erreur, car il n'existe pas de page par défaut contrairement aux serveurs web classiques. Essayez alors http://127.0.0.1:8080/infos.html . Vous devriez voir la petite fenêtre qui ressemble à la fenêtre de lecture sur la freebox.

Fenêtre de lecture

2.2. Étude du navigateur

Pour mieux étudier ce navigateur internet, nous allons substituer un serveur apache au serveur vlc. Il est plus complet, et permet de voir de logs, mais aussi, pour la suite, de faire tourner du php.

Je ne vais pas expliquer ici l'installation d'un serveur apache. Je vous conseille juste de faire, dans le fichier de config, qu'il écoute sur le 8080 et de faire un hôte virtuel sur le 8080.

Voilà ce que ça donne chez moi.

Navigateur sur le 8080

Maintenant que le serveur écoute le port 8080, essayons de générer un accès depuis la freebox, et de voir ce que donnent les logs :

freeplayer.freebox.fr - - [03/Jul/2005:10:55:20 +0200] "GET /settings.html HTTP/1.0" 404 1155 "" "freebox/1.6.12-rc2"
freeplayer.freebox.fr - - [03/Jul/2005:10:55:21 +0200] "GET /settings.html HTTP/1.0" 404 1155 "" "freebox/1.6.12-rc2"
freeplayer.freebox.fr - - [03/Jul/2005:10:55:21 +0200] "GET /settings.html HTTP/1.0" 404 1155 "" "freebox/1.6.12-rc2"

A l'allumage de la freebox, on a trois requetes sur la page settings.html, page par défaut du navigateur freebox. Le nom du navigateur (user-agent) est ici freebox/1.6.12-rc2.

Si on vient de la page du choix des bouquets on voit cela :

freeplayer.freebox.fr - - [03/Jul/2005:10:57:11 +0200] "GET /settings.html HTTP/1.0" 404 1310 "http://192.168.27.43/tv/bouquet.php" "freebox/1.6.12-rc2"

Ce qui est intéressant ici, c'est le referer, autrement dit la page qui fait appel à settings.html. Il s'agit de la page des bouquets. Cette page est différente pour les dégroupés et les non dégroupés. Chez les dégroupés, le referer est : "http://172.16.249.110/scripts/bouquet.pl".

Je vous rappelle que les ip 192.168.x.y et 192.168.x.y sont non routables (j'ai un doute pour le premier x de 192.168.x.y) et ne peuvent être jointes que de l'intérieur du réseau free.

On a donc deux pages de bouquets, une sophistiquée en perl (langage de script de prédilection chez free), qui doit gérer les abonnements aux différents bouquets, et une plus simple qui ne fait que la vérification de l'acceptation des nouvelles CGV. Ce qui est curieux, c'est que les deux pages n'ont pas la même présentation :

Bouquets en Non dégroupé

[Je n'ai pas encore de photo en dégroupé].

On a donc deux serveurs différents.

2.3. Hello world

Nous allons essayer de faire un "Hello World", autrement dit une page de test, pour voir si elle va être interprétée par la freebox.

Un code source simplissime (je rappelle que c'est du html 3.1) :

<html><body><h1>Hello World</h1></body></html>

Voilà ce que ça donne avec un navigateur normal :

Dans un navigateur normal Dans un navigateur normal

Voyons maintenant avec la freebox :

Sur la freebox

Youpi !

Maintenant, on essaye de faire un lien :

<html><body><h1>Hello World</h1> <p><a href="2.html">Vers une page 2</a></p> </body></html>

En créant bien-sûr le fichier 2.html nécessaire.

Et bien ça fonctionne également !

Vers page 2 La page 2

Essayons maintenant avec une page en php. Sur mon serveur, la page settings.html va pointer sur une page php hello.php5 :

print("hello world en php");

Vers page en php La page en php

Autant dire que si le php fonctionne, on peut faire ce qu'on veut !

Essayons un lien externe :

<html><body><h1>Hello World</h1> <p><a href="http://tmgo.free.fr/hello.html">Vers une page externe</a></p> </body></html>

Ne fonctionne pas.

Vers un lien externe

2.4. Conclusions

En tous cas, le php nous permettra plein de choses, comme ce superbe programme qui relève les mails sur la freebox.

Logiciel de mails

Non, en fait c'est un fake, pour l'instant. Le vrai viendra par la suite. :P