Ionos-DNS/ionosdel.py

101 lines
3.8 KiB
Python
Raw Normal View History

2024-09-24 22:28:44 +02:00
import requests
# Remplacez cette clé API par la vôtre
API_KEY = "SECRET.API"
# Fonction pour afficher le menu de sélection du domaine à supprimer
def select_domain():
options = {
"NOMDOMAINE1": "ID",
"NOMDOMAINE2": "ID",
"NOMDOMAINE3": "ID"
}
print("Merci de faire votre choix :")
for i, domain in enumerate(options.keys(), start=1):
print(f"{i}. {domain}")
while True:
choice = input("Entrez le numéro du domaine à supprimer : ")
try:
choice = int(choice)
if 1 <= choice <= len(options):
domain = list(options.keys())[choice - 1]
domain_id = list(options.values())[choice - 1]
return domain, domain_id
else:
print("Choix invalide. Réessayez.")
except ValueError:
print("Choix invalide. Réessayez.")
# Appeler la fonction pour afficher le menu de sélection du domaine à supprimer
DOMAIN_NAME, DOMAIN_ID = select_domain()
# Fonction pour afficher la liste des enregistrements de sous-domaine
def lister_sous_domaines():
url = f"https://api.hosting.ionos.com/dns/v1/zones/{DOMAIN_ID}"
headers = {
"X-API-Key": API_KEY,
"accept": "application/json"
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
data = response.json()
print("Liste des enregistrements de sous-domaine :")
for idx, record in enumerate(data["records"]):
print(f"{idx+1}. {record['name']} (ID: {record['id']})")
return data # Renvoyer les données pour être utilisées plus tard
else:
print("Une erreur s'est produite lors de la récupération des enregistrements de sous-domaine.")
print(f"Code d'erreur : {response.status_code}")
print(f"Message d'erreur : {response.text}")
return None # Renvoyer None en cas d'erreur
# Fonction pour supprimer un sous-domaine en utilisant son ID
def supprimer_sous_domaine(sous_domaine_id):
url = f"https://api.hosting.ionos.com/dns/v1/zones/{DOMAIN_ID}/records/{sous_domaine_id}"
headers = {
"X-API-Key": API_KEY,
"accept": "*/*",
"Content-Type": "application/json"
}
response = requests.delete(url, headers=headers)
if response.status_code == 200:
print("Le sous-domaine a été supprimé avec succès !")
else:
print("Une erreur s'est produite lors de la suppression du sous-domaine.")
print(f"Code d'erreur : {response.status_code}")
try:
message_erreur = response.json().get("message", "Erreur lors de l'obtention du message d'erreur.")
except ValueError:
message_erreur = "Erreur lors de l'obtention du message d'erreur."
print(f"Message d'erreur : {message_erreur}")
# Appeler la fonction pour lister les enregistrements de sous-domaine et stocker les données
data = lister_sous_domaines()
# Demander à l'utilisateur d'entrer le chiffre correspondant à l'ID du sous-domaine à supprimer
while True:
choix = input("Entrez le chiffre correspondant à l'ID du sous-domaine que vous souhaitez supprimer (ou appuyez sur Entrée pour ne rien supprimer) : ")
if choix.isdigit():
choix = int(choix)
break
elif choix == "":
choix = None
break
else:
print("Veuillez entrer un chiffre valide.")
# Si l'utilisateur a entré un chiffre, supprimer le sous-domaine correspondant
if choix is not None:
# Vérifier si le choix est un index valide dans la liste des enregistrements de sous-domaine
if 1 <= choix <= len(data["records"]):
sous_domaine_id = data["records"][choix - 1]["id"]
supprimer_sous_domaine(sous_domaine_id)
else:
print("L'index choisi ne correspond à aucun sous-domaine.")
else:
print("Aucun sous-domaine n'a été supprimé.")