Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/12/2005, 03:30
Shockly
 
Fecha de Ingreso: agosto-2005
Mensajes: 109
Antigüedad: 21 años, 2 meses
Puntos: 0
Dominios disponibles, Script y listados.

Hola,

Ayer, mientras estaba mirando la disponibilidad de un dominio se me ocurrió que no tenía que ser difícil generar un listado completo...
Dicho y hecho, este es el script.

Adelanto que,

- Dominios disponibles de 3 letras: 0
- Dominios disponibles de 4 letras: 108.320

Sacar los de 5 y siguientes... tal vez otro día.


Un saludo.


El script y los listados están en http://shockly.com/find_available_domains/

El script:
Código PHP:
<?php
/*
        http://shockly.com/find_available_domains/
    
        v1.0.0. 03/12/2005, one AT shockly DOT com
*/
//---------------------------------------------------------------------------------------------------
//  definiciones

    
error_reporting( E_ALL );
    @
set_time_limit( 0 );
    
ignore_user_abort( 1 );

    
//  El script se aborta creando una CARPETA con este nombre:
    
define( 'ABORT_SCRIPT', 'ABORT_SCRIPT' );

//---------------------------------------------------------------------------------------------------
//  funciones

    
function esta_disponible( $dominio ) {
        if( !
$id = @fsockopen( "rs.internic.net", 43, $errno, $errstr, 10 ) ) { 
            die( 
"<br><br>- Imposible conectar con 'rs.internic.net'<br>" );
        } else { 
            
fputs( $id, "$dominio\r\n" );
            while( !
feof( $id ) ) { 
                
$buffer = fgets( $id, 128 ); 
                if( 
ereg( "No match for \"", $buffer ) ) { 
                    
fclose( $id );
                    return 
true;
                } 
            } 
            
fclose($id);
        } 
        return 
false;
    }

//---------------------------------------------------------------------------------------------------
//  main


    
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\r\n";
    echo 
"<HTML>\r\n";
    echo 
" <HEAD>\r\n";
    echo 
"    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\r\n";
    echo 
"    <title>Find available domains</title>\r\n";
    echo 
"    <!-- no cache headers -->\r\n";
    echo 
"    <meta http-equiv=\"Pragma\" content=\"no-cache\">\r\n";
    echo 
"    <meta http-equiv=\"no-cache\">\r\n";
    echo 
"    <meta http-equiv=\"Expires\" content=\"-1\">\r\n";
    echo 
"    <meta http-equiv=\"Cache-Control\" content=\"no-store\">\r\n";
    echo 
"    <meta http-equiv=\"Cache-Control\" content=\"no-cache\">\r\n";
    echo 
"    <meta http-equiv=\"Cache-Control\" content=\"must-revalidate\">\r\n";
    echo 
"    <!-- end no cache headers -->\r\n";
    echo 
" </HEAD>\r\n";
    echo 
"<BODY \r\n";
    echo 
"    bgcolor=\"#D5D5D5\" \r\n";
    echo 
"    text=\"#000000\" \r\n";
    echo 
"    id=\"all\" \r\n";
    echo 
"    leftmargin=\"25\" \r\n";
    echo 
"    topmargin=\"25\" \r\n";
    echo 
"    marginwidth=\"25\" \r\n";
    echo 
"    marginheight=\"25\" \r\n";
    echo 
"    link=\"#000020\" \r\n";
    echo 
"    vlink=\"#000020\" \r\n";
    echo 
"    alink=\"#000020\">\r\n";
    echo 
"<center><h1>Find available domains</h1></center>\r\n";
    echo 
"<pre>\r\n";
    echo 
"<br>";
    
    echo 
"---   test   ---<br>";
    
$dominio = "elpais.com";
    if( !
esta_disponible( $dominio ) )
        echo 
" El dominio '$dominio' *NO* está disponible<br>";
    else
        echo 
" El dominio '$dominio' *SÍ* está disponible<br>";
    
$dominio = "elpais123oOo000.com";
    if( !
esta_disponible( $dominio ) )
        echo 
" El dominio '$dominio' *NO* está disponible<br>";
    else
        echo 
" El dominio '$dominio' *SÍ* está disponible<br>";
    echo 
"--- end test ---<br>";
    echo 
"<br>";


    
$letras = "4";
    
$dominio = "aaaa.com";
    
$dominio_break = "zzzy.com";
    
    
    
$fn_log = "disponibles_de_" . $letras . "_letras.txt";
    if( 
$fn_log != "" ) {
        
$f_id = fopen( $fn_log, "w" );
        if( 
$f_id ) {
            
fwrite( $f_id, "\r\n\r\n" );
            
fwrite( $f_id, "- Dominios disponibles de $letras letras '.com'\r\n" );
            
fwrite( $f_id, "- v1.0.0. 03/12/2005, one AT shockly DOT com\r\n\r\n\r\n" );
        }
    }
    else
        
$f_id = false;
    
$cnt_encontrados = 0;
    
$cnt_mirados = 0;
    
$t_start = time();
    for( 
$dominio[0]='a'; $dominio[0] <= 'z'; $dominio[0]=chr(ord($dominio[0])+1 )) {
        for( 
$dominio[1]='a'; $dominio[1] <= 'z'; $dominio[1]=chr(ord($dominio[1])+1 )) {
            for( 
$dominio[2]='a'; $dominio[2] <= 'z'; $dominio[2]=chr(ord($dominio[2])+1 )) {
                for( 
$dominio[3]='a'; $dominio[3] <= 'z'; $dominio[3]=chr(ord($dominio[3])+1 )) {

                    if( 
file_exists( ABORT_SCRIPT ) ) {
                        @
rmdir( ABORT_SCRIPT );
                        
$dominio = $dominio_break;
                        break;
                    }

                    
$cnt_mirados++;
                    
                    if ( !
esta_disponible( $dominio ) ) {
                        echo 
str_pad( $cnt_mirados, 6, "0", STR_PAD_LEFT ) . "  $dominio<br>";
                        if( 
$cnt_mirados & 0x00000100 ) {
                            @
ob_flush();
                            @
flush();
                        }
                    }
                    else {
                        if( 
$f_id )
                            
fwrite( $f_id, "$dominio\r\n" );
                        
$cnt_encontrados++;
                        echo 
"El dominio '$dominio' *SÍ* está disponible<br>";
                        @
ob_flush();
                        @
flush();
                    }
                    
                }
            }
        }
    }

    
$t_delta = time() - $t_start;
    
$t_delta = (floor(($t_delta-(floor($t_delta/86400)*86400))/3600)." horas, "
    
.floor(($t_delta-(floor($t_delta/3600)*3600))/60)." minutos y "
    
.floor($t_delta-(floor($t_delta/60))*60)." segundos.");

    
setlocale( LC_TIME,"spanish" );
    
$str_fecha = strftime( "%A %d de %B de %Y - %H:%M:%S", time() );
    
    if( 
$f_id ) {
        
fwrite( $f_id, "\r\n\r\n" );
        
fwrite( $f_id, "- $str_fecha\r\n" );
        
fwrite( $f_id, "- La búsqueda duró: " . $t_delta . "\r\n" );
        
fwrite( $f_id, "\r\n" );
        
fwrite( $f_id, "- Dominios disponibles de $letras letras '.com': " . number_format( $cnt_encontrados, 0, ',', '.') . "\r\n" );
        @
fclose( $f_id );
    }
    
    echo
"<br><br>";
    echo
"- $str_fecha<br>";
    echo
"- La búsqueda duró: " . $t_delta . "<br>";
    echo
"<br>";
    echo
"- Dominios disponibles de $letras letras '.com': " . number_format( $cnt_encontrados, 0, ',', '.') . "<br>";
    echo 
"<br><br><h1>- FIN -</h1><br>";
    echo( 
"</pre><br>" );
    echo( 
"</BODY>" );
    echo( 
"</HTML>" );
    
    
//---------------------------------------------------------------------------------------------------
//  end
?>