V1
This commit is contained in:
commit
0c92ceb0ea
1
Readme.md
Normal file
1
Readme.md
Normal file
@ -0,0 +1 @@
|
||||
Ajouter ou supprimer des sous domaine / DNS avec l'API de Ionos.
|
67
ionos.py
Normal file
67
ionos.py
Normal file
@ -0,0 +1,67 @@
|
||||
import requests
|
||||
|
||||
# Fonction pour afficher le menu de sélection du domaine
|
||||
def select_domain():
|
||||
options = {
|
||||
"NOMSITEINTERNET1": "ID DU DOMAINE",
|
||||
"NOMSITEINTERNET2": "ID DU DOMAINE",
|
||||
"NOMSITEINTERNET3": "ID DU DOMAINE"
|
||||
}
|
||||
|
||||
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 : ")
|
||||
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.")
|
||||
|
||||
# Lire le nom de domaine à partir de l'entrée utilisateur
|
||||
DOMAIN_NAME = input("Entrez le nom de domaine à utiliser : ")
|
||||
|
||||
# Appeler la fonction pour afficher le menu de sélection du domaine
|
||||
DOMAIN_SUFFIX, DOMAIN_ID = select_domain()
|
||||
|
||||
# Remplacez la valeur suivante par votre clé API Ionos
|
||||
API_KEY = "SECRET.API"
|
||||
|
||||
# Endpoint de l'API pour créer un enregistrement de sous-domaine
|
||||
API_ENDPOINT = f"https://api.hosting.ionos.com/dns/v1/zones/{DOMAIN_ID}/records"
|
||||
|
||||
# Données du sous-domaine au format JSON
|
||||
SUBDOMAIN_DATA = [
|
||||
{
|
||||
"name": f"{DOMAIN_NAME}.{DOMAIN_SUFFIX}",
|
||||
"type": "A",
|
||||
"content": "1.1.1.1", # Adresse IP cible pour le sous-domaine
|
||||
"ttl": 60,
|
||||
"disabled": False
|
||||
}
|
||||
]
|
||||
|
||||
# Utilisation de requests pour effectuer la requête POST avec les données du sous-domaine
|
||||
headers = {
|
||||
"X-API-Key": API_KEY,
|
||||
"accept": "application/json",
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
|
||||
response = requests.post(API_ENDPOINT, headers=headers, json=SUBDOMAIN_DATA)
|
||||
|
||||
if response.status_code == 201:
|
||||
created_subdomain = response.json()[0]['name']
|
||||
print(f"Le sous-domaine '{created_subdomain}' a été créé avec succès !")
|
||||
else:
|
||||
print("Une erreur s'est produite lors de la création du sous-domaine.")
|
||||
print(f"Code d'erreur : {response.status_code}")
|
||||
print("Message d'erreur :")
|
||||
print(response.json())
|
100
ionosdel.py
Normal file
100
ionosdel.py
Normal file
@ -0,0 +1,100 @@
|
||||
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é.")
|
Loading…
Reference in New Issue
Block a user