Diese Woche am beliebtesten

Vertiefendes Material

Domain Whois Service

Dieses PHP-Skript ermöglicht die einfache Überprüfung der Verfügbarkeit von Domainnamen. Es richtet sich an Agenturen, Webdesigner, Startups oder alle, die schnell und zuverlässig prüfen möchten, welche Domains noch frei sind und welche bereits vergeben wurden.

Hauptfunktionen

  1. Domainprüfung mit API oder lokal
    • Das Skript unterstützt zwei Prüfmethoden:
      • WhoisXMLAPI: Eine präzise, cloudbasierte Abfrage über die Domain-Availability-API.
      • Lokale DNS-Abfrage: Schnelle Überprüfung über DNS-Einträge (A, CNAME, MX).
    • Die Prüfmethoden lassen sich zu Beginn des Codes bequem an- oder abschalten.
  2. Domain-Endungen (TLDs)
    • Standardmäßig prüft das Skript beliebte Endungen wie .com, .de, .net, .org, .info, .xyz, .online, .site, .tech und .store.
    • Die Liste der TLDs kann leicht erweitert oder angepasst werden.
  3. Alternativvorschläge
    • Wenn alle eingegebenen Domains bereits vergeben sind, generiert das Skript automatisch alternative Vorschläge, z. B. durch Anhängen von Begriffen wie online, app, hq, web, pro usw.
  4. Formularbasierte Eingabe
    • Benutzer geben den gewünschten Domainnamen ohne Endung ein.
    • Nach Absenden des Formulars werden die Ergebnisse übersichtlich in drei Kategorien dargestellt:
      • Verfügbare Domains
      • Bereits vergebene Domains
      • Alternative Vorschläge
  5. Optik und Benutzerfreundlichkeit
    • Modernes, schlichtes Design im Agentur-Style.
    • Klar strukturierte Darstellung der Ergebnisse.
    • Eingabefeld mit Platzhalter und Pflichtfeldprüfung.

Technische Details

  • Sprache: PHP
  • Erforderliche PHP-Version: 7.0 oder höher
  • Optionale API: WhoisXMLAPI (API-Key erforderlich)
  • DNS-Checks: Standardfunktionen checkdnsrr() für lokale Prüfung
  • Sicherheit: Eingaben werden validiert, um ungültige Domainnamen zu verhindern.

Anwendungsbeispiele

  • Schnell prüfen, ob der gewünschte Domainname für ein Projekt verfügbar ist.
  • Unterstützung bei der Namensfindung für neue Unternehmen oder Webseiten.
  • Integration in Agentur-Websites oder interne Tools zur Domainverwaltung.

Vorteile

  • Einfache Konfiguration durch API-An/Aus-Schalter.
  • Automatische Vorschläge, falls die gewünschte Domain vergeben ist.
  • Flexibel anpassbare Liste der TLDs.
  • Kombination aus lokaler Prüfung und professioneller API für zuverlässige Ergebnisse.
<?php
// API-Konfiguration: true = API verwenden, false = lokale DNS-Abfrage
define('USE_API', true);

// API-Schlüssel für WhoisXMLAPI (nur erforderlich, wenn USE_API auf true gesetzt ist)
define('API_KEY', 'DEIN_API_KEY_HIER');

// Domain-Endungen, die geprüft werden sollen
$domainEndungen = ['.com', '.de', '.net', '.org', '.info', '.xyz', '.online', '.site', '.tech', '.store'];

// Arrays zur Speicherung der Ergebnisse
$verfuegbar = [];
$vergeben = [];
$alternativen = [];

// Funktion zur Generierung alternativer Domainnamen
function generateAlternatives($name) {
    $suffixes = ['123', 'online', 'app', 'hq', 'web', 'pro', '360', 'site'];
    $suggestions = [];
    foreach ($suffixes as $s) {
        $suggestions[] = $name . $s;
    }
    return $suggestions;
}

// Funktion zur Überprüfung der Domainverfügbarkeit über die API
function checkDomainWithAPI($domain) {
    $url = "https://domain-availability.whoisxmlapi.com/api/v1?apiKey=" . API_KEY . "&domainName=" . urlencode($domain);
    $response = file_get_contents($url);
    $data = json_decode($response, true);
    return isset($data['DomainInfo']['domainAvailability']) && $data['DomainInfo']['domainAvailability'] === 'AVAILABLE';
}

// Formularverarbeitung
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $domainInput = trim($_POST['domain']);
    if (preg_match('/^[a-zA-Z0-9-]+$/', $domainInput)) {
        foreach ($domainEndungen as $endung) {
            $fullDomain = $domainInput . $endung;
            if (USE_API) {
                // Überprüfung über die API
                if (checkDomainWithAPI($fullDomain)) {
                    $verfuegbar[] = $fullDomain;
                } else {
                    $vergeben[] = $fullDomain;
                }
            } else {
                // Lokale DNS-Abfrage
                if (checkdnsrr($fullDomain, "A") || checkdnsrr($fullDomain, "CNAME") || checkdnsrr($fullDomain, "MX")) {
                    $vergeben[] = $fullDomain;
                } else {
                    $verfuegbar[] = $fullDomain;
                }
            }
        }

        // Wenn keine verfügbaren Domains gefunden wurden, alternative Vorschläge generieren
        if (count($verfuegbar) === 0) {
            $alternativen = generateAlternatives($domainInput);
            foreach ($alternativen as $key => $alt) {
                foreach ($domainEndungen as $endung) {
                    $fullAlt = $alt . $endung;
                    if (USE_API) {
                        // Überprüfung über die API
                        if (checkDomainWithAPI($fullAlt)) {
                            $alternativen[$key] = $fullAlt;
                            break;
                        } else {
                            unset($alternativen[$key]);
                        }
                    } else {
                        // Lokale DNS-Abfrage
                        if (checkdnsrr($fullAlt, "A") || checkdnsrr($fullAlt, "CNAME") || checkdnsrr($fullAlt, "MX")) {
                            unset($alternativen[$key]);
                        } else {
                            $alternativen[$key] = $fullAlt;
                        }
                    }
                }
            }
        }
    } else {
        $message = "Bitte einen gültigen Domainnamen ohne Endung eingeben, z. B. 'meinname'";
    }
}
?>

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Domain Verfügbarkeit prüfen</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
input[type="text"] { width: 250px; padding: 5px; }
input[type="submit"] { padding: 5px 10px; }
.message { margin-top: 10px; font-weight: bold; color: red; }
.success { color: green; }
ul { margin-top: 10px; }
</style>
</head>
<body>
<h1>Domain Verfügbarkeit prüfen</h1>

<form method="post">
    <label for="domain">Domainname (ohne Endung):</label>
    <input type="text" name="domain" id="domain" placeholder="meinname" required value="<?= htmlspecialchars($domainInput ?? '') ?>">
    <input type="submit" value="Prüfen">
</form>

<?php if (isset($message)): ?>
    <p class="message"><?= $message ?></p>
<?php endif; ?>

<?php if (count($verfuegbar) > 0): ?>
    <h2>Verfügbare Domains</h2>
    <ul>
        <?php foreach ($verfuegbar as $d): ?>
            <li class="success"><?= htmlspecialchars($d) ?></li>
        <?php endforeach; ?>
    </ul>
<?php endif; ?>

<?php if (count($vergeben) > 0): ?>
    <h2>Bereits vergebene Domains</h2>
    <ul>
        <?php foreach ($vergeben as $d): ?>
            <li><?= htmlspecialchars($d) ?></li>
        <?php endforeach; ?>
    </ul>
<?php endif; ?>

<?php if (count($alternativen) > 0): ?>
    <h2>Alternative Vorschläge</h2>
    <ul>
        <?php foreach ($alternativen as $a): ?>
            <li><?= htmlspecialchars($a) ?></li>
        <?php endforeach; ?>
    </ul>
<?php endif; ?>

</body>
</html>
Dreamcodes Redaktion
Dreamcodes Redaktion
Jeder Inhalt auf Dreamcodes entsteht mit einem klaren Anspruch: geprüfte Praxis statt schneller Theorie. Was hier veröffentlicht wird, basiert auf Best Practices, echten Projekterfahrungen und technischem Verständnis, das über das Offensichtliche hinausgeht. Unser Ziel ist ein Fundament, auf dem du aufbauen kannst, nicht eines, das beim ersten produktiven Einsatz bricht. Wie du die Inhalte integrierst, absicherst und in deinen Kontext überträgst, liegt bei dir. Die fachliche Grundlage liefern wir, die Verantwortung für den Einsatz bleibt deine.
Vorheriges Tutorial
Nächstes Tutorial

Vielleicht einen Blick WERT?