PHP:¿Cómo hago para detectar yo mismo si un dominio esta disponible?

De Foros del Web

Usando esta función. (cplus trajo el borrador, y yo la corregí)

Código de ejemplo con comentarios:

Código PHP:

<? 
function checkDomainReg($domain,$server) { 
    if(!$server){ 
        $server = 'whois.crsnic.net'; 
        $lineNumber = 8; 
        $fp = fsockopen ($server, 43, &$errnr, &$errstr) or die("$errno: $errstr"); 
        fputs($fp, "$domain\n"); 
        $x=0; 
        while (!feof($fp)) { 
            $serverReturn = fgets($fp, 2048); 
            $serv.=$serverReturn; 
            if ($x == $lineNumber) { 
                $line = $serverReturn; 
            } 
            $x++; 
        } 
        fclose($fp); 
        $result=preg_match("/no\smatch/i",$line)?0:1; 
        return $result; 
    }else{ 
        $lineNumber = 8; 
        $fp = fsockopen ($server, 43, &$errnr, &$errstr) or die("$errno: $errstr"); 
        fputs($fp, "$domain\n"); 
        while (!feof($fp)) { 
            $serverReturn .= fgets($fp, 2048); 
        } 
        $result=substr_count($serverReturn,'NOT FOUND')?0:1; 
        return $result; 
    } 
} 
 
if(!$dominio){ 
?> 
 
<form method="POST" action= "<?=$PHP_SELF?>"> 
<b>Revisar si el dominio está disponible</b> 
<P> 
<INPUT name="dominio" SIZE="30" MAXLENGTH="35"> 
. 
<select name="ext" id="ext"> 
<option value="com" selected>com</option> 
<option value="net">net</option> 
<option value="org">org</option> 
</select> 
<P> <INPUT TYPE="SUBMIT" VALUE="Revisar"> 
</P> 
</FORM> 
<? 
} 
else{ 
    $si='#00AA11'; 
    $no='#FF0000'; 
    $com=checkDomainReg("$dominio.com",''); 
    $net=checkDomainReg("$dominio.net",''); 
    $org=checkDomainReg("$dominio.org",'whois.pir.org'); 
    echo '<font color="'.($com?$no:$si).'"><b>'.$dominio.'.com</b></font><br>'; 
    echo '<font color="'.($net?$no:$si).'"><b>'.$dominio.'.net</b></font><br>'; 
    echo '<font color="'.($org?$no:$si).'"><b>'.$dominio.'.org</b></font><br>'; 
} 
?> 

Consultamos "dominio.com" y mostrará los dominios en rojo si no están disponibles y en verde si están disponibles.


--ASCENDEDMASTERS 27 Abr 2007

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales