accountdesk / dns-check
There is no license information available for the latest version (dev-main) of this package.
CNAME-/Domain-Verifizierung über autoritative Nameserver (cache-arm) fuer Custom-Domain-Flows.
dev-main
2026-05-28 09:33 UTC
Requires
- php: >=8.1
- mikepultz/netdns2: ^1.5
This package is auto-updated.
Last update: 2026-05-28 09:36:40 UTC
README
CNAME-/Domain-Verifizierung über autoritative Nameserver (cache-arm) für Custom-Domain-Flows.
Statt rekursive Resolver (z.B. 8.8.8.8) zu fragen, wird der autoritative Nameserver der Zone direkt befragt. Das umgeht positives und negatives DNS-Caching und liefert frisch gesetzte Records sofort – ideal, um zu prüfen, ob ein Kunde seine Custom-Domain bereits korrekt per CNAME konfiguriert hat.
Anforderungen
- PHP >= 8.1
- mikepultz/netdns2 ^1.5 (wird automatisch mitinstalliert)
Installation
composer require accountdesk/dns-check
Verwendung
use AccountDesk\DnsCheck\DnsChecker; $checker = new DnsChecker(); if ($checker->cnamePointsTo('my.kundendomain.de', 'cname.accountdesk.example')) { // CNAME ist korrekt gesetzt – Custom-Domain verifiziert }
Der Konstruktor ist optional konfigurierbar:
$checker = new DnsChecker( bootstrapNameservers: ['1.1.1.1', '8.8.8.8'], // Resolver zum Auffinden der autoritativen NS timeoutSeconds: 5, );
bootstrapNameserverswerden nur genutzt, um die autoritativen Nameserver der Zone zu finden (NS-Records ändern sich kaum, deren Caching ist unkritisch).- Die eigentliche CNAME-Prüfung erfolgt anschließend direkt gegen den autoritativen Nameserver, ungecached.
Funktionsweise
- Ausgehend vom FQDN wird Label für Label aufwärts nach NS-Records gesucht (
my.domain.eu→domain.eu), um die zuständige Zone und ihre autoritativen Nameserver zu finden. - Deren Hostnamen werden zu IP-Adressen aufgelöst (Net_DNS2 akzeptiert als Nameserver nur IPs).
- Die CNAME-Abfrage geht direkt an diese autoritativen Nameserver – am Cache vorbei.
Der Vergleich ist case-insensitiv und ignoriert einen abschließenden Punkt (FQDN-Notation).
Entwicklung
Linting und statische Analyse via mago:
mago lint mago analyze