27
2010
Verificar la disponibilidad de un dominio con PHP
Este es un articulo que quiero compartir con toda nuestra comunidad de webmaster que nos visitan, este script en PHP consiste en un verificador de disponibilidad de los dominios, echo principalmente con PHP y se utiliza un poco de ajax usando Json y jQuery.

Este escrip lo encontre en Ignoranto Blog!! y por lo util que es, se merece esta publicación.
En este escrip se utiliza:
* Manejo de jQuery.
* Conocimientos básicos de PHP
* Conocimientos sobre HTML
Para empezar debemos saber que es un Whois LookUp
El Whois son los datos del registro del dominio, en él está la información acerca del registrante y el registrador, la fecha de registro, la última actualizacion y la fecha de vencimiento, tambien encontramos el estatus del dominio como por ejemplo si éste acepta transferencia, autorenovación y cosas más!
El whois LookUp que he escrito se llama byteWhois! y funciona de la siguiente manera:
1. Recibe 2 parámetros GET, dominio y tld;
2. Una funcion que según el TLD extrae la url de un servidor Whois
3. Otra funcion abre conexión fsockopen(); introduce el dominio a consultar fputs(); y se descarga la respuesta!
4. Si dentro de la respuesta (el whois) existe las palabras “No match”, “No Found” u otras, quiere decir que NO esta registrado!
5. En caso de estar registrado, se obtiene la info del whois
6. Se codifica toda esta información como json y se imprime en el archivo (echo $json;)
Ya que saben un poco de historia les dejo los links para descargar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | <?php
/*
* byteWhois, un whois lookup para resellers!
* Desarrollado por : Gerber Pacheco
* Sitio Web : http://ignoranto.info
* Si conoces algun otro servidor whois, me gustaría que me envíes la info a gerber@ignoranto.info
* Este script devuelve un objeto JavaScript (jSON) con 2 propiedades: "estado" y "whois"
*/
$dominioNombre = $_GET['dominio'];
$dominioExtension = $_GET['tld'];
$estado = comprobarDominio($dominioNombre,$dominioExtension);
if ($estado == 'no-disponible'){ $whois = INFO_WHOIS; }
else { $whois = "Dominio no registrado"; }
$data = array("estado" => "$estado","whois" => $whois );
echo json_encode($data);
function servidorWhois($tld)
{
switch($tld)
{
case 'com' : $server = "whois.verisign-grs.com";
$noFound = "No match"; break;
case 'net' : $server = "whois.verisign-grs.com";
$noFound = "No match"; break;
case 'org' : $server = "whois.publicinterestregistry.net";
$noFound = "NOT FOUND"; break;
case 'info': $server = "whois.afilias.net";
$noFound = "Not found"; break;
case 'biz' : $server = "whois.nic.biz";
$noFound = "Not found"; break;
default: return null; break;
}
return $server.";".$noFound;
}
function comprobarDominio($dominioNombre, $dominioTld)
{
$dominioCompleto = $dominioNombre.".".$dominioTld;
$serverInfo = servidorWhois($dominioTld);
if ($serverInfo)
{
$serverData = explode(";", $serverInfo);
$whoisServer = $serverData[0];
$noFound = $serverData[1];
$conexionServer = fsockopen($whoisServer,43);
fputs($conexionServer,"$dominioCompleto\r\n");
$respuesta = '';
while(!feof($conexionServer))
{
$respuesta .= fgets($conexionServer,128);
}
fclose($conexionServer);
if (ereg($noFound,$respuesta)) {
return "disponible";
}
else {
define ('INFO_WHOIS',$respuesta);
return "no-disponible";
}
}
else
{
return "tld-incorrecta";
}
}
?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>byteWhois! | Ignoranto.info</title>
<script src="jquery-1.3.2.min.js"></script>
<script language="JavaScript">
$(document).ready(function(){
$("#whois").fadeIn("slow");
});
function whoisDominio()
{
dom = $("#dominio").val();
ext = $("#tld").val();
if(revisarDominio(dom))
{
$.getJSON('../php/byteWhois.php',{dominio:dom, tld:ext},
function(data){
if (data.estado == 'no-disponible') {
mensajito("Dominio <span style='color:red;'>NO DISPONIBLE!</span>");
}else{
mensajito("Dominio <b>DISPONIBLE!</b>");
}
});
}
else
{
alert("El dominio ingresado no matiene un formato adecuado!");
}
}
function revisarDominio(dom)
{
re=/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))$/
if(!re.exec(dom)){return false;} else {return true;}
}
function mensajito(msg)
{
$("#info").html(msg);
$("#info").slideDown();
setTimeout('$("#info").slideUp();',3000);
}
</script>
<style type="text/css">
body{ text-align:center; }
#whois { display:none; width:300px; margin:auto;
font-family:Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size:14px; border:1px black solid;
background:#c5e97a;padding:10px;
}
#whois .domain{ font-size:20px; text-align:right; } #whois .tld{font-size:20px; }
#info { padding:5px; margin:5px; border:1px gray solid;
background:#deed29; color:black; display:none; font-size:12px; font-weight:bolder;}
a{font-size:11px; text-decoration:none; color:#e87400;}
a:hover{text-decoration:underline; color:#e87400;}
#whoisData{display:none; width:680px; margin:auto; padding:5px ; border:1px gray solid; text-align:justify;}
</style>
</head>
<body>
<form id="whois" action="javascript: whoisDominio();">
<div id="info"></div>
<strong>Ignoranto byteWhois</strong><br>
Ingresa tu Dominio (sin "www.")<hr>
<input class='domain' id="dominio" type="text">
<select class='tld' id="tld">
<option value='com'>.com</option>
<option value='net'>.net</option>
<option value='org'>.org</option>
<option value='info'>.info</option>
<option value='biz'>.biz</option>
</select><br>
<input type="submit" value="¿Está disponible?">
<hr>
<a href="http://ignoranto.info">Desarrollo Web y más! [Ignoranto Blog!]</a><br>
</form>
</body>
</html> |
5 Comments + Add Comment
Leave a comment
Patrocinador
Siguenos
Suscribete
Correo @zoneartcss.com
Comentarios
- juan manuel en Subdominios con php y .htaccess
- PCHART-Crear gráficas en PHP | Espacio de *M@?!*[lOs KeRoS mUcHo a ToDoS...] en Pchart – Crear gráficas en PHP
- EH en Evitar resize de un textarea con CSS
- KAREN en Envia mensajes de texto gratis a celulares telcel
- Elie Cottage en Ventajas y desventajas de tener un blog gratis

An article by







estoy comenzando en esto de la programacion y aun no entiendo bien el proceso de esto.
mi pregunta es, como nombro al archivo php???
solo busca cual es el whois de los dominios .es y lo agregas en el case,
case ‘es’ : $server = “whois.nic.biz”;
$noFound = “Not found”; break;
verifica. alrato te publico la lista de los whois del mundo a ver si la encuentro entre mis archivos
Buenas, el script esta de puta madre la verdad que me sirvio un monto la preunta es como puedo verificar un .es ya que no esta en el Case..
gracias!!
Gustavo
verifica que la libreria de jquery sea la correcta en el link de referencia que puse de dan para descargar la libreria, probablemente sea eso. de echo ese codigo lo probe y si funciono hace tiempo, no creo que le haga falta algo, de todas maneras estos son los links de los ejemplos.
http://develop.ignoranto.info/LeerPHP?Carpeta=php&Archivo=byteWhois.php
http://develop.ignoranto.info/LeerPHP?Carpeta=html&Archivo=byteWhois.html
El primeroe s el php y el segundo el html.
Saludos espero tus comentarios
Hola miguel, oye estoy siguiendo el ejemplo y me surge un problema: el php funiona perfecto pero la llamada por medio de jQuery me devuelve null y aparece un error el la consola de mozilla. Ya intente ponerle el content/type para json en el php y he utilizado .getJSON y .ajax ( con metodo post) para tratar de recuperar los valores pero sigo recibiendo null en el callback, alguna idea de que puede estar fallando?