Erfahrungen mit Domain abfragen/registrierungen?

sn3aker

Grünschnabel
Hallo zusammen :)

1.
So, es würde reichen wenn jemand mir erklären würde wie das abläuft.
Also als erstes muss ich über ein "<input -feld" auf einer Homepage überprüfen können ob die eingegebene .DE -Domain in der Domain Registry existiert. Also nicht ob es die Seite gibt denn es könnte der Fall sein, dass jemand eine bestimmte Domain registriert hat aber die Seite noch nicht existiert.
(ich hoffe das ist so weit verständlich)
Frage wie ist das machbar, dass Kunden die auf meiner Seite angemeldet sind über meine Seite eine Domain überprüfen können ob die in der REG existiert oder nicht. (Account bei "Xantronet" z.B. besteht alles klar soweit?)

Ich hatte überlegt dieses über den Shell der befehl /whois ist da sehr ausführlich nur etwas kompliziert zu programmieren. Aber wie auch immer, wenn ihr andere Vorschläge habt, immer her damit! ^^

2.
Das zweite ist die Domain zu bestellen.
Da ich der Hoster sein werde also sprich admin-c, tech-c, zone-c und der Kunde nur owner-c ist müssen Meiner erfahrung nach erstmal Handles angelegt werden. Ab hier habe ich keine ahnung mehr außer das diese Handles Templates sind und über E-Mail gesendet werden.
Weiter komme ich nicht danach müsste ja noch die REG Templates versendet werden?

Wenn Fragen bestehen bitte FRAGEN!
Php-Code ist erwünscht wenn möglich.

Danke schonmal
Gruß sn3aker
 
Also wir verwenden dieses Whoisscript hier, als Vorlage galt mWhois von Matt Wilson, jedoch genügte uns es irgendwann nicht mehr und es waren eine Splittung auf mehrere IP Adressen nötig usw.

PHP:
<?
function perform_whois($domainname, $ext) {
    // Einen neuen socket erzeugen
    $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

    // Eine Liste von IP-Adressen dieses Computers
    $sourceips[] = '12.12.12.13';
    $sourceips[] = '12.12.12.14';
    $sourceips[] = '12.12.12.15';

    while (count($sourceips) > 0) {
        $ipid  = rand(0,count($sourceips)-1);
        $newip = $sourceips[$ipid];
        unset($sourceips[$ipid]);
        shuffle($sourceips);

        if(!@socket_bind($sock, $newip)) continue 1;
        $timeout = 4;
        socket_set_nonblock($sock);
        $time = time();
        set_error_handler(, E_WARNING);
        while (!@socket_connect($sock, $whois_servers[$ext], 43))
        {
          $err = socket_last_error($sock);
          if ($err == 115 || $err == 114)
          {
            if ((time() - $time) >= $timeout)
            {
              socket_close($sock);
              continue 2;
            }
            sleep(1);
            continue;
          }
          break;
        }
        socket_set_block($sock);

        // Timeout-Test
        $check = socket_select($r = array($sock), $w = array($sock), $f = array($sock), 0, 30);

        switch($check) {
            case 2:
/*                    if($_GET['send'] == 1) {
                        echo "<!-- [-] Connection Refused $newip  -->";
                    }*/
                    continue 2;
                    break;
            case 1:
/*                    if($_GET['send'] == 1) {
                        echo "<!-- [+] Connected $newip -->\n";
                    }*/
                    break;
            case 0:
/*                    if($_GET['send'] == 1) {
                        echo "<!-- [-] Timeout $newip -->";
                    }*/
                    continue 2;
                    break;
        }

        // Schreiben
        $request = "{$domainname}.{$ext}\r\n";
        socket_write($sock, $request);

        while($buffer=@socket_read($sock,512,PHP_NORMAL_READ)){
            $rawoutput .= $buffer;
        }
        // Die Socketverbindung schliessen
        socket_close($sock);

    	$whois_avail_strings[$whois_servers[$ext]] = str_replace("\\n", "\n", $whois_avail_strings[$whois_servers[$ext]]);
    	$tmp = strpos($rawoutput, $whois_avail_strings[$whois_servers[$ext]]);
    	if(!strlen($rawoutput) || is_integer($tmp)) {
    	    return 1;
    	} else {
    	    return 0;
    	}
    }
    return -1;
}
?>

Dazu gehört natürlich eine liste aller whois Server, und der möglichen "frei" und "nicht frei" antworten. Dieses ist leider ein wenig komplizierter Zu erstellen da jedes Nic komplett unterschiedliche antworten gibt. Und man für jedes Einzeln so die Patterns schreiben muss.

Zusätzlich brauchst du noch eine Klasse von phplabs z.B. "idna_convert" um nach umlaut Domains suchen zu können. Diese müssen im Puny-Format an die Nics gesendet werden.

Auch intressant.. es gibt viele Domains die nicht registriert werden dürfen aufgrund einschränkungen des Nic`s, hier geben Nics aber immer ein "ist frei" zurück, was verwirrend ist. Genau wie Domainnamen die Gesperrt sind. Hier kommt man meist erst bei dem Registrierungsversuch dahinter.


Als Anhang noch eine Aktuelle Serverliste mit ein paar zusätzlichen einträgen, da mattsscripts.co.uk nicht mehr erreichbar ist seit ner weile.
 

Anhänge

Zuletzt bearbeitet:
Vielen herzlichen Dank fürs Erste. Ich werde mir das gleich noch etwas genauer anschauen und mit meinem Kollegen besprechen. Sehr Interessant übrigens, dass man mancha Nic's nicht registrieren kann wusste ich so auch noch nicht.

Gruß sn3aker
 
Zurück