Files
inwx-scripts/inwx_add_record.py
T
maier e31bdeb59d Session-Caching, Domain-/Gruppen-Skripte; KeePass-DB aus Repo entfernen
- inwx_common.py: Login mit Session-Cache, KP_PW-Option
- inwx_list/add: Domain als Argument, gemeinsamer Helfer
- inwx_domains(_owner).py: Domains alphabetisch, NS, Gruppen via citeq-TXT (DNS)
- hosting.kdbx aus Tracking genommen und in .gitignore

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 15:57:10 +02:00

66 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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()