Forum sur la Livebox de Wanadoo
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Forum sur la Livebox de Wanadoo


 
AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  
Le deal à ne pas rater :
Tablette 11″ Xiaomi- Mi Pad 6 global version (coupon + code promo)
224.97 €
Voir le deal

 

 [Astuce] Script DynDns en PERL

Aller en bas 
AuteurMessage
AGusS
Invité




[Astuce] Script DynDns en PERL Empty
MessageSujet: [Astuce] Script DynDns en PERL   [Astuce] Script DynDns en PERL EmptyDim 20 Mar 05 à 14:24

Salut,

J'ai créé un petit script en PERL pour récupérer l'adresse IP d'une Livebox Sagem. Je l'utilsie pour mettre à jour mon dns dynamique via le script ipcheck.py.

Voilà le code :


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/bin/wget --http-user=admin --http-passwd=XXXX http://192.168.5.1/wansetup.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 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";

Pensez à remplacer XXXX par le mot de passe de l'utilisateur admin.
Revenir en haut Aller en bas
mhep
Invité




[Astuce] Script DynDns en PERL Empty
MessageSujet: Re: [Astuce] Script DynDns en PERL   [Astuce] Script DynDns en PERL EmptyMar 19 Juil 05 à 10:56

Bonjour,

J'ai testé le script mais j'ai eu comme réponse (après avoir inséré le password admin comme demandé) :
Code:
./ipcheck.py: line 9: syntax error near unexpected token `('
./ipcheck.py: line 9: `my %ip = ();'

Est-ce qu'il faut remplacer les parenthèses par une donnée ?
Merci pour tout conseil car je n'y connais rien en perl.

Marc
Revenir en haut Aller en bas
AGusS
Invité




[Astuce] Script DynDns en PERL Empty
MessageSujet: Re: [Astuce] Script DynDns en PERL   [Astuce] Script DynDns en PERL EmptyMer 20 Juil 05 à 0:02

Bonsoir,

Je ne comprend pas l'erreur car le code que j'ai fourni fonctionne Hein4

Cela fonctionne avec une Livebox Sagem et un firmware < 240. Le script compatible 240 sera bientôt mis en ligne.

Essaye avec le code suivant qui commente la ligne ( qui d'ailleurs ne sert à rien ) :

Code:

#!/usr/bin/perl -w
# Recup_ip version 1.0
# (c) Gregory Borysiak <gregory@borysiak.com>
# Sous licence GPL

#use Sys::Hostname;

#my %ip = (); --  commenté
my $count = 0;
my $cmd = "/usr/bin/wget --http-user=admin --http-passwd=XXXX http://192.168.5.1/wansetup.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 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";

Ce script perl je l'ai appellé recup_ip.pl. Il peut être exécuté depuis le shell ainsi : $ perl -w recup_ip.pl

Je l'utilise avec un script Python disponible sur le site de Dyndns à cette URL : http://ipcheck.sourceforge.net/ipcheck.py

Pour terminer, j'ai créé un deuxième qui utilise les deux précédents :

Code:

#/bin/sh
# run_ipcheck 0.5 pour livebox Sagem
# Grégory Borysiak <gregory@borysiak.com>
# Basé sur un code trouvé sur la page de Funix (http://linuxfr.org/~Funix/15982.html )

# on récupère l'ip via l'interface web
IP=`/usr/local/sbin/recup_ip.pl`
#echo $IP

# on met à jour dyndns si besoin est

if [ -n "$IP" ]; then
  IPCHECK=`/usr/bin/python /usr/local/sbin/ipcheck.py -a $IP -d /usr/local/share/ipcheck USER PASSWORD SITE`
  RES=`echo $IPCHECK | grep successful`
  if [ -z "$RES" ]; then
    if [ -n "$IPCHECK" ]; then
        echo $IPCHECK
    fi
  fi
else
  echo "Pas d'adresse IP"
fi

Où USER est l'utilisateur Dyndns, PASSWORD le mot de passe et SITE le nom de domaine.
Revenir en haut Aller en bas
pierre60
Invité




[Astuce] Script DynDns en PERL Empty
MessageSujet: Re: [Astuce] Script DynDns en PERL   [Astuce] Script DynDns en PERL EmptyMer 16 Nov 05 à 21:27

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 Smile

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 Smile
Revenir en haut Aller en bas
Contenu sponsorisé





[Astuce] Script DynDns en PERL Empty
MessageSujet: Re: [Astuce] Script DynDns en PERL   [Astuce] Script DynDns en PERL Empty

Revenir en haut Aller en bas
 
[Astuce] Script DynDns en PERL
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» (erreur de script)
» script Iptables
» pb script a l'installe livebx ???
» erreur de script
» [SCRIPT] Wifi: impossible d'obtenir un wlan0

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum sur la Livebox de Wanadoo :: 
LES PROBLEMES
 :: Problèmes Logiciels :: Linux-Unix
-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser