Website-Icon Webdesign-Podcast

DomainCheck mit PHP

In diesem Artikel möchte ich euch ein Script vorstellen, dass ich für ein aktuelles Projekt programmiert habe. Es handelt sich dabei um einen DomainCheck mit dem überprüft werden kann, ob eine Domain bereits registriert ist oder noch registriert werden kann.

Das Prinzip dahinter ist relativ einfach: Wir haben eine Liste mit Whois Abfrage Servern und entsprechende Rückgabewerte, wenn die Domain frei ist. Mithilfe dieser Liste werden dann die Domains auf den entsprechenden Verfügbarkeitsstatus überprüft.

Ihr könnt das Script im Rahmen der GNU General Public License vollumfänglich weiter nutzen. Vielleicht hat der Eine oder Andere von euch einen Verwendungszweck für das Script. Viel Spaß damit.

 Whois Url || Rückgabewert wenn die Domain frei ist */
$nic = array(
	'de' => 'whois.nic.de||free',
	'at' => 'whois.nic.at||nothing found',
	'com' => 'whois.crsnic.net||no match for'
);
// Fehlermeldung, wenn die Eingabe der Domain fehlerhaft ist
$WrongDomain = 'Die eingegebene Domain ist fehlerhaft. Bitte überprüfen Sie Ihre Schreibweise: domain.tld';
// Fehlermledung wenn diese TopLevel Domain nicht überprüft werden soll
$DontSellDomain = 'Bitte entschuldigen Sie, aber wir vertreiben diese TopLevelDomain nicht. Bitte entscheiden Sie sich für eine: .de, .at oder .com Domain.';
// Fehlermeldung wenn der Server der NIC Vergabestelle nicht erreichbar ist
$ServerNotReachable = 'Der Server der Vergabestelle ist aktuell nicht erreichbar, bitte versuchen Sie es später noch einmal.';
/*
 * $_REQUEST['domain'] ist die Variable über die die Domain die überprüft werden soll übergeben wird
 * strtolower() wandelt den kompletten String in Kleinbuchstaben um
 * trim() entfernt Leerzeichen am Anfang und Ende des Strings
 * strip_tags() entfernt HTML Tags
 *
 * Der geänderte und bearbeitete String wird in der Variable $domain gesichert
 *
 */
$domain 	= strip_tags(trim(strtolower($_REQUEST['domain'])));

// Überprüfen das die Variable $domain nicht leer ist ansonsten wird eine Fehlermeldung ausgegeben
if( !empty($domain) ){
	// Aus der $domain Variable werden die ggf. vom Nutzer mit eingegebenen http:// und www. Teile entfernt
	$domain = str_replace('http://', '', $domain);
	$domain = str_replace('www.', '', $domain);
	
	// Die Domain wird anhand des Punktes in zwei Teile geteilt DomainName.TopLevel
	$domain = explode('.', $domain);
	$domainCount = count($domain);
	
	// Danach wird überprüft ob die Domain auch wirklich nur aus zwei Teilen besteht,
	// damit z.B. keine Subdomains eingegeben werden Sub.DomainName.TopLevel
	if($domainCount > 2){ die($WrongDomain); }
	
	// Überprüfung ob die eingegebene TLD in unserem Array ($nic) enthalten ist und überprüft werden kann
	if( empty($nic[$domain[1]]) ){ die($DontSellDomain); }else{
		// Wenn der Array Teil für die entsprechende TLD vorhanden ist wird dieser anhand des || gesplittet
		$myNic = explode('||', $nic[$domain[1]]);
		// $NicServer enthält die Server URL
		$NicServer = $myNic[0];
		// $NicFreeResponse enthält den Rückgabewert wenn die Domain frei ist
		$NicFreeResponse = $myNic[1];
	}
	
	// Checken ob der entsprechende whois Server erreichbar ist und dann Verbindung aufbauen
	if ( !($fp = fsockopen($NicServer, 43)) ) {
		// Wenn nicht wird diese Fehlermeldung ausgegeben
		die($ServerNotReachable);
	}
	
	// Dem Server den zu überprüfenden Domainnamen übergeben
	fwrite($fp, $domain[0].'.'.$domain[1]."\r\n");
	$result = '';
	
	// Antwort vom whois Server holen
	while (!feof($fp)) {
		$result .= fread($fp, 1024);
	}
	
	// Verbindung zum Server wieder trennen
	fclose($fp);
	
	// Die Antwort des whois Servers mit dem Rückgabewert aus dem Array vergleichen
	if( strstr($result, $NicFreeResponse) ){
		// Ist der Vergleich erfolgreich, so wird die Nachricht zurückgegeben
		echo 'Die Domain '.$domain[0].'.'.$domain[1].' ist noch nicht vergeben. Wir können die Domain für Sie registrieren.';
	}else{
		// Ist die Domain bereits vergeben, erscheint diese Fehlermeldung
		echo 'Es tut uns leid, die Domain '.$domain[0].'.'.$domain[1].' ist leider vergeben. Vielleicht möchten Sie eine andere Domain-Kombination ausprobieren?';
	}
}else{
	// Fehlermeldung wenn der Inhalt der Variable $domain leer ist
	echo $WrongDomain;
}
?>

Bitte beachten falls es Probleme gibt: https://www.webdesign-podcast.de/2010/09/03/domaincheck-mit-php/comment-page-1/#comment-170

Die mobile Version verlassen