Salut à tous (dernière édition de ce post : lundi 30 avril 2012, 19:43:50 (UTC+0200))
Voici un petit script que j’utilise pour récupérer et consigner l’IP publique de ma livebox Sagem. Ça marche très bien sur ma Squeeze. Ce script ne comporte aucun danger à l’exécution, sauf si vous avez un fichier ~/livebox/ip_du_jour.txt auquel cas il écrira à la fin de ce fichier.
Je me demande si quelqu’un sait faire autrement ? (pas question d’aller sur un site internet, je crois avoir vu cette approche dans ce sujet + haut). Je suis bien intéressé par vos éventuelles approches locales du problème (oui ça peut être important de connaître son IP à une date donnée ) j’ai pas trouvé autre chose que ça, mais vous ?
J’était dans le dep. 27 récemment et mon IP changeait tous les jours, je suis de retour sur Paris depuis le 4 Novembre 2011, et je vois que mon IP ne change plus depuis 6 jours … instructif tout ça ( moi j’aime bien quelle change)
Edit: j’ai modifié mon script originel pour tenir compte des remarques instructives de BBT1 à son sujet. Encore merci BBT1.
Edit 2 : en fait ce Lundi 30 Avril 2012, je m’aperçois que la simple commande :
retourne toute les ips de la Livebox, donc dans le script qui suit la commande wget est un peu lourde : je modifierai le script en conséquence quand j’en aurai le temps …
[code]cat ip_livebox_du_jour.sh
#! /bin/bash
Description : permet de récupérer l’ip PUBLIQUE de la livebox Sagem (2011)
à chaque ouverture d’un terminal et de la consigner dans ~/${rep}/${fichier_ip}
à condition d’appeler ce script depuis ~/.bashrc ( ce que je fais en tout cas)
dernière mise-à-jour : jeudi 1 mars 2012, 00:17:07 (UTC+0100)
dernière modif : ligne 23 auparavant on lisait egrep -q, on lit maintenant grep -qE,
mais je me rends compte que l’on ne peut pas sérieusement maintenir un prg de cette façon …
if ! ping -q -c1 -W1 livebox >/dev/null 2>&1; then
echo “pas de connexion à livebox” >&2
exit 1
fi
fichier_ip="ip_du_jour.txt"
rep="livebox"
date_jour=$(date +%F)
mkdir ~/${rep} 2>/dev/null
ip=$(wget -q -O - http://livebox/index.cgi | grep -i -A1 ‘ip wan’ | tail -1 | sed ‘s|^.>(.)$|\1|’)
if ! echo “$ip” | grep -qE ‘^([[:digit:]]+.){3}[[:digit:]]+$’; then
echo “Il y a un pb avec le script $0” >&2
exit 2
fi
echo -e “IP publique\t$ip”
derniere_ip=$(tail -1 ~/${rep}/${fichier_ip} 2>/dev/null | sed ‘s/^.*[[:blank:]]+//’)
[ “$derniere_ip” = “$ip” ] && exit 0
echo -e “$date_jour\t$ip” >> ~/${rep}/${fichier_ip}
[/code]