2012-01-01 28 views
18

Si tengo un dominio como www.example.com y quiero verificar si está disponible usando registros DNS (no whois) ...compruebe si un dominio está disponible o no usando PHP?

¿Es posible hacer esto usando PHP?

+4

Si por "disponibles", que significa disponible para su compra o registro, no se puede determinar esto utilizando DNS de forma fiable. Por ejemplo, 'moose9moose2.ph' está disponible, pero tiene un registro A. Mientras que 'ph.moose9moose2' no tiene registros DNS, pero no está disponible para el registro. Puede intentar agregar reglas para cubrir todos los casos posibles, pero es probable que nunca termine. –

+1

@David, correcto, pero si dns no es suficiente, ¿qué recomendarías en su lugar? – David19801

+1

Consulte la pregunta que duplicó: Whois. – KingCrunch

Respuesta

29

Puede utilizar checkdnsrr o Gethostbyname:

Documentación:

http://www.php.net/checkdnsrr

http://www.php.net/gethostbyname

Ejemplo checkdnsrr:

<?php 
if (checkdnsrr('example.com.', 'ANY')) { 
    echo "DNS Record found"; 
} 
else { 
    echo "NO DNS Record found"; 
} 
?> 

Ejemplo Gethostbyname:

<?php 
$domain = 'example.com'; 
if (gethostbyname($domain) != $domain) { 
    echo "DNS Record found"; 
} 
else { 
    echo "NO DNS Record found"; 
} 
?> 
+1

Esto se muestra como encontrado para todo ... ejemplo - if (checkdnsrr ('examjhkasdjkhbasdle.com', 'ANY')) { echo "Se encontró el registro DNS"; } else { echo "NO se encontró el registro DNS"; } – David19801

+0

aquí está el segundo ejemplo usando gethostbyname: favo

+8

Solución: para que checkdnsrr funcione, debe agregar un punto después del nombre de dominio, ejemplo: checkdnsrr ('example.com.', "ANY") – David19801

0

que debería ir para este paquete Domain-Availability es apoyar a una gran cantidad de dominios de nivel superior y está escrito en una forma orientada a objetos .

1

Depende de lo que quiere decir con "disponible". Si quiere decir disponible para el registro, no es posible determinarlo solo en base a la información de DNS. El sistema whois debe ser usado. Una forma fácil de probar es tomar un nombre de dominio no utilizado y establecer los servidores de nombres a algo inválido. DNS no estará disponible, pero el dominio aún no está disponible para el registro. Acabo de probar las sugerencias de checkdnsrr(), gethostbyname() y dns_get_record(). Todos muestran que no se devuelve DNS para un dominio que no se puede registrar.

La siguiente pregunta ofrece algunos detalles más: Checking if a domain name is registered

Cuestiones relacionadas