DomainCheck mit PHP über entsprechende Whois Server

PHOTO EMBED

Fri Apr 05 2024 15:38:07 GMT+0000 (Coordinated Universal Time)

Saved by @Angel

<?php
/*
 *
 * Author: Pascal Bajorat
 * Copyright (c) 2010 Pascal Bajorat
 * www.webdesign-podcast.de
 *
 * GNU General Public License lizenziert
 * http://www.gnu.org/licenses/gpl.html
 * http://creativecommons.org/licenses/GPL/2.0/deed.de
 *
 * DomainCheck Script
 * Version 1.0.0
 *
 * DomainCheck Script. Zum testen ob Domains bereits vergeben sind oder noch registriert werden können.
 *
 */
 
/* Array mit DomainTopLevel => 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 &uuml;berpr&uuml;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&ouml;nnen die Domain f&uuml;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&ouml;chten Sie eine andere Domain-Kombination ausprobieren?';
	}
}else{
	// Fehlermeldung wenn der Inhalt der Variable $domain leer ist
	echo $WrongDomain;
}
?>
content_copyCOPY

https://www.webdesign-podcast.de/2010/09/03/domaincheck-mit-php/