Bloc notes

indexqui suis-je ?linuxcompteur php mysqllinux virushumourguitaremorpionalbum is coollivre d’orfarm villeaviationhoraires des magasinsplus belle la viebloc notesff7

Comment mettre à jour automatiquement l'adresse ip dans l'enregistrement DNS de gandi

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, voici un exemple
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

indexqui suis-je ?linuxcompteur php mysqllinux virushumourguitaremorpionalbum is coollivre d’orfarm villeaviationhoraires des magasinsplus belle la viebloc notesff7

Valid HTML 4.01 Transitional