Panique dans DynHost

Salut à tous !

Mon serveur est malheureusement sur une connexion à IP dynamique. Pour mettre à jour cette adresse dans le DNS, j’utilise le script Python DynHost. J’obtiens un message d’erreur gênant et je ne sais pas vraiment comment régler le problème :

$ tail /root/dynhost.log
Démarrage de DynHost
Panique à bord: Aucune IP Disponible!!
----------------------------------
Wed Jan 12 01:01:01 CET 2011
Démarrage de DynHost
Panique à bord: Aucune IP Disponible!!
----------------------------------
Wed Jan 12 02:01:01 CET 2011
Démarrage de DynHost
Panique à bord: Aucune IP Disponible!!

Est-ce que quelqu’un a une idée ?

À bientôt.

Le Farfadet Spatial

Dans le script Dynhost, il semble qu’il y ait une ligne genre

Peux tu la donner et la tester? Quelle méthode utilises-tu pour trouver ton IP?

Salut à tous !

La ligne :

getip() {
		IP=`/sbin/ifconfig $IFACE | fgrep "inet ad" | cut -f2 -d":" | cut -f1 -d" "`
                OLDIP=`cat ./old.ip`
        }

Ce que ça donne :

$ sudo /sbin/ifconfig $IFACE | fgrep "inet ad" | cut -f2 -d":" | cut -f1 -d" "
[sudo] password for XXX: 
192.168.0.16
127.0.0.1

Bon, cela ne récupère pas la bonne adresse. Il faut changer quelque chose à ce script.

À bientôt.

Le Farfadet Spatial

Bonjour,

Cette commande pourras te donner ton IP externe :

Remplace donc

IP=`/sbin/ifconfig $IFACE | fgrep "inet ad" | cut -f2 -d":" | cut -f1 -d" "`par

Note que

IP=`wget http://checkip.dyndns.com/ -q -O - | sed 's/^.*Address: \([0-9]*.[0-9]*.[0-9]*.[0-9]*\)<.*/\1/'g` ne fonctionne pas si tu passe par un routeur. Chez moi ça me donne l’adresse LAN du routeur.

Bonjour,

Je passe par un routeur et cela me donne bien mon adresse IP externe avec ma commande.

Par contre, pourquoi less dans ta commande ?

Salut à tous !

$ sudo wget http://whatismyipaddress.com/fr/mon-ip -q -O - | less | grep "Votre adresse IP" | sed -e 's/^.*>\([0-9]*.[0-9]*.[0-9]*.[0-9]*\)<.*$/\1/'
89.2.47.138

Très bien, j’obtiens la bonne adresse. Je modifie le script. Par contre, je vais attendre un peu (le temps que l’adresse change) avant de passer le sujet en résolu.

À bientôt.

Le Farfadet Spatial

Salut à tous !

La mise à jour de l’adresse IP n’a pas fonctionné. J’ai fait la modification de l’IP à la main, je ne sais pas trop ce qui se passe. La récupération de l’adresse IP semble fonctionner désormais, c’est la mise à jour qui doit mal se passer. Quelques éléments de différents journaux – j’ai un peu élagué le premier, pour ne garder que l’essentiel :

$ cat /root/dynhost.log | grep -i -A 2 -B 2 -C 2 "Sun Jan 16"
[…]
Sun Jan 16 19:01:01 CET 2011
Démarrage de DynHost
IP Identique! Pas de mise à jour.
----------------------------------
Sun Jan 16 20:01:01 CET 2011
Démarrage de DynHost
Ancienne IP: 89.2.47.138
--
Mise à jour!
----------------------------------
Sun Jan 16 21:01:01 CET 2011
Démarrage de DynHost
IP Identique! Pas de mise à jour.
[…]

Dans le suivant, l’adresse IP est la bonne, donc si la mise à jour s’était bien déroulée, je n’aurais pas dû faire le changement à la main :

$ cat /root/old.ip 
89.2.112.61

À noter qu’il n’y a pas de saut de ligne à la fin de « old.ip », je ne sais pas si ça pose un quelconque problème.

$ cat /root/DynHost/ipcheck.py | grep ovh
Dyndnshost = "www.ovh.com"

Ce dernier résultat me semble indiquer que la configuration est bonne dans « ipcheck.py ».

J’ai vérifié mes identifiants DynHOST, ce sont bien ceux que j’ai indiqué dans le script « dynhost ». Je ne sais plus où regarder pour savoir ce qui ne va pas.

À bientôt.

Le Farfadet Spatial

Salut à tous !

J’aurais dû y penser avant : comme apparemment le script « dynhost » semble fonctionner, j’ai lancé à la main le script « ipcheck.py » (que « dynhost » lance s’il détecte un changement d’adresse IP), voici le résultat :

$ sudo python /root/DynHost/ipcheck.py XXX XXX XXX
[sudo] password for XXX: 
ppp0: error fetching interface information: Device not found
ipcheck.py: No address found on interface ppp0

Donc, désormais « dynhost » est capable d’identifier correctement s’il y a eu changement d’adresse IP, maintenant c’est « ipcheck.py » qui n’arrive pas à trouver la bonne adresse. Toutes les informations dont je dispose au sujet de IPCheck se trouvent à cette adresse : http://guide.ovh.com/DynDns

Il faut certainement changer le script, mais ma connaissance de Python est totalement superficielle, je ne sais donc pas trop quoi faire et suis preneur de toute idée.

À bientôt.

Le Farfadet Spatial

J’ai regardé le script, il faut que tu lances ce que fait le script dynhost à savoir

python /root/DynHost/ipcheck.py -a TaNouvelleIP XXX XXX XXX pour faire le test, là il cherche l’IP sur l’interface ppp0.

Salut à tous !

Très bien, au temps pour moi.

Cela dit, résultat différent, mais pas vraiment meilleur :

$ sudo python /root/DynHost/ipcheck.py -a 89.2.112.61 XXX XXX le-bars.net
[sudo] password for XXX: 
ipcheck.py: le-bars.net nochg 89.2.112.61 -consider abusive

À bientôt.

Le Farfadet Spatial