#!/usr/bin/env python3 import sys import argparse from inwx_common import get_client, call_api # --- KONFIGURATION --- # Login/Session-Handling steckt in inwx_common.py. def main(): # 1. Argument-Parser einrichten parser = argparse.ArgumentParser(description="DNS-Record zu einer Domain hinzufügen.") parser.add_argument("domain", help="Domain (z.B. ma151.de)") parser.add_argument("type", help="Typ des Records (z.B. A, AAAA, CNAME, TXT)") parser.add_argument("name", help="Name/Subdomain (z.B. srv1)") parser.add_argument("content", help="Wert des Records (z.B. die IP-Adresse)") parser.add_argument("--ttl", type=int, default=3600, help="TTL in Sekunden (Standard: 3600)") args = parser.parse_args() # 2. Client holen (nutzt ggf. die zwischengespeicherte Session) api = get_client() # 3. Prüfen, ob der Record existiert full_name = f"{args.name}.{args.domain}" print(f"🔍 Prüfe {full_name} ({args.type} -> {args.content})...") info_res = call_api(api, 'nameserver.info', {'domain': args.domain}) if info_res['code'] != 1000: print(f"❌ Fehler bei Domain-Info: {info_res['msg']}") sys.exit(1) records = info_res['resData'].get('record', []) already_exists = False for rec in records: if (rec['name'].rstrip('.') == full_name and rec['type'].upper() == args.type.upper() and rec['content'] == args.content): already_exists = True break if already_exists: print(f"ℹ️ Record existiert bereits. Keine Aktion erforderlich.") else: # 4. Record erstellen print(f"🚀 Erstelle neuen Record...") create_res = call_api(api, 'nameserver.createRecord', { 'domain': args.domain, 'name': args.name, 'type': args.type.upper(), 'content': args.content, 'ttl': args.ttl }) if create_res['code'] == 1000: print(f"✅ Erfolg! Record ID: {create_res['resData']['id']}") else: print(f"❌ Fehler: {create_res['msg']} (Code: {create_res['code']})") # Kein logout() -> die Session bleibt gültig und kann wiederverwendet werden. if __name__ == "__main__": main()