Bonjour,
j'utilise un nom de domaine dynamique via le service everydns.net, car la gestion dynamique de DNS est payante chez dyndns (je ne parle des sous-noms de domaines proposés).
Impossible donc d'utiliser la Livebox pour cette mise à jour, seul dyndns étant disponible.
J'ai donc adapté ce script pour l'utiliser avec ma version de Livebox (Sagem3202_24013A), et pour FreeBSD
le meilleur OS du monde... Pardon
Je pourrais mettre à jour mon adresse chez everydns toutes les minutes par exemple, mais je trouve plus propre (et plus rapide) de tester si l'adresse ip ne change pas localement, puis d'exécuter le script d'everydns si il y a un changement.
Voici donc la version modifiée du script :
- Code:
-
#!/usr/bin/perl -w
# Recup_ip version 1.0
# (c) Gregory Borysiak <gregory@borysiak.com>
# Sous licence GPL
#use Sys::Hostname;
my %ip = ();
my $count = 0;
my $cmd = "/usr/local/bin/wget --http-user=admin --http-passwd=mot_de_passe http://192.168.1.1/internetservices.html -O - -o /dev/null |";
sub get_ip {
my $res = "";
open FILE, $cmd or die "impossible d'executer : $!";
while(my $ligne = <FILE> ) {
chop $ligne;
if( $ligne =~ /var v_Adrs_IP/ ) {
my @t = split ' ', $ligne;
$res = substr($t[3], 1, length($t[3]) - 3)
}
}
close FILE;
return($res);
}
my $res = get_ip();
print "$res\n";
Les trois Modifications sont les suivantes :
- L'adresse de la page :
- Code:
-
http://192.168.5.1/wansetup.html
qui devient :
- Code:
-
http://192.168.1.1/internetservices.html
- La variable dans la page :
- Code:
-
if( $ligne =~ /var Adrs_IP/ ) {
qui devient :
- Code:
-
if( $ligne =~ /var v_Adrs_IP/ ) {
- Et le chemin de wget, qui devient sous FreeBSD :
- Code:
-
/usr/local/bin/wget
Pour ceux qui utilisent Linux, deux solutions :
La première, qui est la plus simple, consiste à supprimer le système et le remplacer par FreeBSD.
La seconde, et là je vous préviens c'est tordu, limite bricolage :
Il faisser la ligne comme avant, soit :
- Code:
-
/usr/bin/wget
Voilà, si ça peut aider quelqu'un