<?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 ü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; } ?>
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter