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
- 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.
- Das Skript unterstützt zwei Prüfmethoden:
- 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.
- Standardmäßig prüft das Skript beliebte Endungen wie
- 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.
- Wenn alle eingegebenen Domains bereits vergeben sind, generiert das Skript automatisch alternative Vorschläge, z. B. durch Anhängen von Begriffen wie
- 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
- 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>