Prérequis :
Récupérer l'Apikey sur https://account.gandi.net dans la section sécurité
ensuite dans Nom de domaine, Enregistrement DNS
Vous devez avoir au moins un enregistrement DNS
Enregistrer ce script dans vos documents, par exemple ~/linux/script/updatedns.py
#!/usr/bin/python
#doc https://api.gandi.net/docs/livedns/
import requests
import urllib
headers = {'authorization': 'Apikey votre clef'}
# Recupere l'Ip externe
page = urllib.urlopen("http://www.monip.org/").read()
ip = page.split("IP : ")[1].split("<br>")[0]
print (ip)
#api gandy GET
response = requests.request("GET", url, headers=headers)
print("GET")
print(response.text)
#l'adresse ip est differente
if response.text.find(str(ip)) == -1:
print ("*********************")
print ("******ip differente, faire le PUT @******")
print ("*********************")
next_put = {"rrset_type" : "@", "rrset_values" : [str(ip)]}
print("PUT A")
print next_put
url = "https://api.gandi.net/v5/livedns/domains/votre nom de domaine sans le www/records/@/A"
response = requests.put(url, json=next_put, headers=headers)
print("reponse du put A")
print(response.text)
next_put = {"rrset_type" : "www", "rrset_values" : [str(ip)]}
print("PUT www")
print next_put
url = "https://api.gandi.net/v5/livedns/domains/votre nom de domaine sans le www/records/www/A"
response = requests.put(url, json=next_put, headers=headers)
print("reponse du put www")
print(response.text)
rendre le fichier exectuable
chmod +x updatedns.py
Il faut maintenant dire à cron qu'il y a un nouveau fichier à éxecuter régulierement
éditer crontab
crontab -e
aller en bas du fichier, après la ligne
# m h dom mon dow command
ajouter la ligne suivante
0 * * * * python /home/bertrand/linux/script/updatedns.py
Ici, par exemple, cron va lancer le script toutes les heures, le 0 indique que le script se lancera à chaque fois que l'horloge indiquera 0 minute, c'est à dire toute les heures.
puis taper sur Ctrl-O pour sauvegarder, puis Entrée pour valider, puie Ctrl-X pour quitter
Vérifier le fichier avec
crontab -l
redémarrer cron après chaque modification
/etc/init.d/cron restart
puis une ou deux heures plus tard, controler dans le journal l'execution du script et son heure d'execution, et qu'il n'y a pas d'erreur
cat /var/log/syslog | grep updatedns.py
Feb 3 14:00:01 bertrand-X200CA CRON[40222]: (bertrand) CMD (python /home/bertrand/linux/script/updatedns.py)
04/02/2021
afficher la version mobile
mis à jour le 23-03-2022
Bertrand Perrier
En poursuivant votre navigation sur ce site, vous n'acceptez pas l'utilisation de cookie pour ne pas vous proposer d'offres adaptées.