lundi 19 juin 2017

Script Bash pour consigner l' IP publique de ma Box Orange Sagem ,2011, modifié +sieurs fois

Script : ~/bin/ip_livebox_du_jour.sh

################ Début script bash ####################

#! /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)

#  VOIR host livebox
# page lb http://livebox/supportSystemInformationInternet.html

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|^.*>\(.*\)</td>$|\1|')
ip=$(curl -s -X POST -H "Content-Type: application/json" -d '{"parameters":{}}'  http://192.168.1.1/sysbus/NMC:getWANStatus | sed -e 's/.*"IPAddress":"\(.*\)","Remo.*/\1/g')
# cette ligne de cde vient de là :
# http://communaute.orange.fr/t5/ma-connexion/Recup%C3%A9ration-de-l-IP-WAN-d-une-Livebox-Play-noire/m-p/227233#M18838

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}

################ Fin du script bash ###################

Résultat de 7 ans de consignation de l' IP publique de la Livebox, en masquant les 2 premiers octets de l'adresse IP par tvu.xyz. avec cette commande sed de mort ! :-) Genre de commande SED à éviter car ce n'est pas maintenable, franchement ! ...

 seb@Speedi5:~$ cat -n ~/livebox/ip_du_jour.txt|sed -e 's/\(^.\+\t\)\([[:digit:]]\{2\}\..\+\.\)\([[:digit:]]\+\.[[:digit:]]\+$\)/\1tuv.xyz.\3/' |less

      1  2011-07-17      tuv.xyz.44.45
     2  2011-07-18      tuv.xyz.173.79
     3  2011-07-19      tuv.xyz.25.147
     4  2011-07-20      tuv.xyz.164.60
     5  2011-07-22      tuv.xyz.23.198
     6  2011-07-23      tuv.xyz.28.102
     7  2011-07-24      tuv.xyz.14.92
     8  2011-07-25      tuv.xyz.36.210
     9  2011-07-26      tuv.xyz.169.3
    10  2011-07-27      tuv.xyz.179.42