Voilà une petite application que je viens de créer, qui permet d’enregistrer tous les changements d’IP publique d’un ordinateur.
Elle se compose de 2 parties :
- Un script PHP (logip.php), qui sera hébergé sur un serveur (sur internet), dont le rôle est d’enregistrer l’adresse IP du client dans un fichier .log
- Un script Python (notifier.py) que l’on va faire tourner en arrière-plan au démarrage de l’ordinateur (celui dont on veut enregistrer les changements d’IP), et qui va être chargé d’appeler le serveur à intervalle régulier (toutes les 1 minute par exemple), et ainsi lui indiquer un éventuel changement d’IP.
Ce script peut être très utile pour par exemple diagnostiquer un problème de déconnexion/reconnexion intempestive d’un modem ADSL (comme cette merde de Bewan 900), ou tout simplement pour pouvoir connaitre l’IP dynamique de votre ordinateur personnel depuis n’importe ou, simplement en accédant au fichier de log sur le serveur (quand DynDNS fait des siennes).
Techniquement, c’est le serveur qui détecte le changement d’IP, le client est très simple, il ne fait que des requêtes HTTP en boucle. La seule chose à faire est de lui indiquer l’URL où vous hébergez logip.php, avec également le paramètre “machine” qui sert à définir le nom du fichier log sur le serveur, et éventuellement changer la fréquence des notifications (toutes les 60 secondes par défaut) :
#coding: UTF-8
import urllib.request
import time
# Configuration
server_url = "http://votresite.com/IPChangeLog/logip.php?machine=ordinateur-maison"
while True :
try:
response = urllib.request.urlopen(server_url)
response.close()
except:
pass
time.sleep(60)
Note importante : ce script fonctionne en Python 3, je n’ai pas testé avec Python 2 et il se peut que ça ne fonctionne pas puisque Python 3 n’est pas rétro-compatible.
Ensuite il faut lancer le script notifier.py en arrière plan grâce à pythonw.exe (la différence entre python.exe et pythonw.exe est que le 2éme n’affiche pas d’invite de commande, il sert justement à exécuter des scripts python en arrière-plan), avec cette ligne de commande (modifiez juste les chemins en fonction de l’emplacement de python et du script notifier.py sur votre ordinateur) :
C:\Python\pythonw.exe "C:\Python\IPChangeLog\notifier.py"
Pour que ce script se lance automatiquement au démarrage de votre ordinateur, vous pouvez par exemple créer une tâche planifiée.
Et voilà, maintenant vous pouvez voir le journal de vos changements d’IP en consultant le fichier .log (ex: http://votresite.com/IPChangeLog/ipchange_ordinateur-maison.log).