Bonjour, bande de hackers des internets !
Aujourd’hui, je vais vous montrer comment mettre à jour automatiquement votre adresse IP publique sur un enregistrement DNS Cloudflare (par exemple, home.stranix.net) et ainsi dire bye-bye à ces services comme DynDNS qui veulent votre argent ou vos données. Spoiler : ça marche comme sur des roulettes. 🎉
Pourquoi Cloudflare ?
Cloudflare, c’est un peu le couteau suisse du DNS. Et si votre domaine est déjà hébergé chez eux, vous avez toutes les clés en main pour gérer vos IP dynamiques en quelques lignes de code. Pas besoin d’un service tiers, juste un script maison et une API sympa.
Prérequis
Avant de plonger dans le code, il vous faut :
- Un domaine géré chez Cloudflare (par exemple stranix.net).
- Une clé API Cloudflare (ou un jeton d’API plus spécifique).
- Un ordinateur qui fera tourner le script pour mettre à jour l’adresse IP publique.
- Un peu de café (ou de thé, on est inclusifs ici).
Le script magique
Voici un petit script Python qui fait le job. Il détecte votre IP publique et met à jour un enregistrement DNS sur Cloudflare.
Code source
import requests
=== Configuration ===
API_TOKEN = "votre_token_api_cloudflare"
ZONE_ID = "votre_zone_id_cloudflare" # Trouvez-le dans votre dashboard Cloudflare
DNS_RECORD_ID = "votre_dns_record_id" # L'ID de l'enregistrement DNS (home.stranix.net)
DNS_NAME = "home.stranix.net" # Nom de l'enregistrement DNS à mettre à jour
TTL = 300 # TTL en secondes
PROXIED = False # Activez Cloudflare proxy si nécessaire (True/False)
=== Récupération de l'adresse IP publique ===
def get_public_ip():
try:
response = requests.get("https://api.ipify.org?format=json")
response.raise_for_status()
return response.json()["ip"]
except Exception as e:
print(f"Erreur lors de la récupération de l'IP publique : {e}")
return None
=== Mise à jour de l'enregistrement DNS ===
def update_dns_record(ip):
url = f"https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/dns_records/{DNS_RECORD_ID}"
headers = {
"Authorization": f"Bearer {API_TOKEN}",
"Content-Type": "application/json",
}
data = {
"type": "A",
"name": DNS_NAME,
"content": ip,
"ttl": TTL,
"proxied": PROXIED,
}
try:
response = requests.put(url, json=data, headers=headers)
response.raise_for_status()
if response.json().get("success"):
print(f"Enregistrement DNS mis à jour avec succès : {ip}")
else:
print(f"Échec de la mise à jour : {response.json()}")
except Exception as e:
print(f"Erreur lors de la mise à jour de l'enregistrement DNS : {e}")
if name == "main":
ip = get_public_ip()
if ip:
update_dns_record(ip)
else:
print("Impossible de récupérer l'IP publique.")
Comment l’utiliser ?
- Installez les dépendances :
Le script utilise la bibliothèque requests. Si elle n’est pas installée :
pip install requests
- Configurez le script :
Remplissez les variables API_TOKEN, ZONE_ID, DNS_RECORD_ID, et DNS_NAME avec vos infos Cloudflare. Vous trouverez tout cela dans le dashboard Cloudflare.
- Automatisez le tout :
Utilisez un cron job (ou une tâche planifiée sur Windows) pour exécuter ce script toutes les 5-10 minutes. Exemple :
- /5 * * * * /usr/bin/python3 /chemin/vers/le/script.py
Et voilà !
Avec ce petit script, votre adresse home.stranix.net pointera toujours vers votre IP publique, même si elle change. Pas besoin de DynDNS, ni d’un abonnement à un service douteux.
Alors, qu’attendez-vous pour vous lancer ? Et si vous avez des idées pour améliorer ce script, lâchez-vous dans les commentaires (ou un PR sur GitHub, pour les puristes).
À bientôt pour un nouveau tuto geek-friendly ! 🚀