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.

Maintainers

Package info

github.com/accountdesk/dns-check

pkg:composer/accountdesk/dns-check

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-05-28 09:33 UTC

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

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,
);
  • bootstrapNameservers werden 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

  1. Ausgehend vom FQDN wird Label für Label aufwärts nach NS-Records gesucht (my.domain.eudomain.eu), um die zuständige Zone und ihre autoritativen Nameserver zu finden.
  2. Deren Hostnamen werden zu IP-Adressen aufgelöst (Net_DNS2 akzeptiert als Nameserver nur IPs).
  3. 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