{"id":39,"date":"2013-11-17T01:29:14","date_gmt":"2013-11-17T01:33:19","guid":{"rendered":"https:\/\/160e41024x500-whois.png"},"modified":"2015-07-16T18:37:28","modified_gmt":"2015-07-17T00:37:28","slug":"verificar-si-un-dominio-esta-disponible-con-php-y-json","status":"publish","type":"post","link":"https:\/\/emanuelpaxtian.com\/blog\/verificar-si-un-dominio-esta-disponible-con-php-y-json\/","title":{"rendered":"Verificar si un dominio esta disponible con php y json"},"content":{"rendered":"<p>En este post vamos a ver como realizar un script que me permita verificar la disponibilidad de los dominios, echo principalmente con\u00a0<strong>PHP<\/strong>\u00a0y utilizando un poco de\u00a0<strong>ajax<\/strong>\u00a0con\u00a0<strong>Json\u00a0<\/strong>y\u00a0<strong>jQuery<\/strong>.<\/p>\n<p>Crearemos 2 archivos php y 1 css para darle un poco de stylo a nuestro ejemplo, tambien descargaremos la libreria jquery.<\/p>\n<h5>index.php<\/h5>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">&amp;lt;html&amp;gt;\r\n&amp;lt;head&amp;gt;\r\n&amp;lt;title&amp;gt;Jquery Easy - Verificar si un dominio esta disponible con php y json&amp;lt;\/title&amp;gt;\r\n\r\n&amp;lt;link href=&quot;main.css&quot; rel=&quot;stylesheet&quot; \/&amp;gt;\r\n&amp;lt;script type=&quot;text\/javascript&quot; src=&quot;jquery-1.2.6.min.js&quot;&amp;gt;&amp;lt;\/script&amp;gt;\r\n\r\n&amp;lt;script language=&quot;javascript&quot;&amp;gt;\r\n$(document).ready(function() {\r\n\r\n\tvar loading;\r\n\tvar results;\r\n        var form;\r\n\tform = document.getElementById('form');\r\n\tloading = document.getElementById('loading');\r\n\tresults = document.getElementById('results');\r\n\r\n\t$('#Submit').click( function() {\r\n\r\n\t\tif($('#Search').val() == &quot;&quot;)\r\n\t\t{alert('Ingrese un dominio');return false;}\r\n\r\n\t\tresults.style.display = 'none';\r\n\t\t$('#results').html('');\r\n\t\tloading.style.display = 'inline';\r\n\r\n\t\t$.post('process.php?domain=' + escape($('#Search').val()),{\r\n\t\t}, function(response){\r\n\r\n\t\t\tresults.style.display = 'block';\r\n\t\t\t$('#results').html(unescape(response));\r\n\t\t\tloading.style.display = 'none';\r\n\t\t});\r\n\r\n\t\treturn false;\r\n\t});\r\n\r\n});\r\n&amp;lt;\/script&amp;gt;\r\n&amp;lt;\/head&amp;gt;\r\n&amp;lt;body&amp;gt;\r\n&amp;lt;div class=&quot;cabecera&quot;&amp;gt;&amp;lt;img src=&quot;images\/logo.gif&quot; \/&amp;gt;&amp;lt;\/div&amp;gt;\r\n\r\n&amp;lt;h3 align=&quot;center&quot;&amp;gt;Verificar si un dominio esta disponible con php y json&amp;lt;\/h3&amp;gt;\r\n&amp;lt;center&amp;gt;\r\n\r\n\t&amp;lt;form method=&quot;post&quot; action=&quot;.\/&quot; id=&quot;form&quot;&amp;gt;\r\n\t     &amp;lt;h3 style=&quot;color:#FFF&quot;&amp;gt;Ingrese solo el nombre del dominio (*sin prefijo .com, .org, etc)&amp;lt;\/h3&amp;gt;\r\n\t\t&amp;lt;input type=&quot;text&quot; autocomplete=&quot;off&quot; id=&quot;Search&quot; name=&quot;domain&quot;&amp;gt;\r\n\t\t&amp;lt;input type=&quot;submit&quot; id=&quot;Submit&quot; value=&quot;Submit&quot;&amp;gt;\r\n\r\n\t&amp;lt;\/form&amp;gt;\r\n\r\n\t&amp;lt;div id=&quot;loading&quot;&amp;gt;Enviando datos....&amp;lt;\/div&amp;gt;\r\n\r\n\t &amp;lt;div id=&quot;results&quot; style=&quot;width:420px; height:600px;&quot; align=&quot;left&quot;&amp;gt;\r\n\r\n\t &amp;lt;\/div&amp;gt;\t\r\n\r\n &amp;lt;\/center&amp;gt;\r\n &amp;lt;\/body&amp;gt;\r\n &amp;lt;\/html&amp;gt;&lt;\/pre&gt;\r\nEn este archivo estamos dise\u00f1ando nuestro formulario de consulta y estamos creando un metodo con jquery para validar y enviar los datos de mi formulario por ajax hacia el archivo que va aprocesar los datos.\r\n&lt;h5&gt;process.php&lt;\/h5&gt;\r\n&lt;pre class=&quot;brush:php&quot;&gt;&amp;lt;?php\r\nset_time_limit(0);\r\nob_start();\r\n\r\n########### Extensiones\r\n$extensions = array(\r\n\t'.com' \t\t=&amp;gt; array('whois.crsnic.net','No match for'),\r\n\t'.info' \t=&amp;gt; array('whois.afilias.net','NOT FOUND'),\r\n\t'.net' \t\t=&amp;gt; array('whois.crsnic.net','No match for'),\r\n\t'.co.uk' \t=&amp;gt; array('whois.nic.uk','No match'),\r\n\t'.nl' \t\t=&amp;gt; array('whois.domain-registry.nl','not a registered domain'),\r\n\t'.ca' \t\t=&amp;gt; array('whois.cira.ca', 'AVAIL'),\r\n\t'.name' \t=&amp;gt; array('whois.nic.name','No match'),\r\n\t'.ws'\t\t=&amp;gt; array('whois.website.ws','No Match'),\r\n\t'.be' \t\t=&amp;gt; array('whois.ripe.net','No entries'),\r\n\t'.org' \t\t=&amp;gt; array('whois.pir.org','NOT FOUND'),\r\n\t'.biz' \t\t=&amp;gt; array('whois.biz','Not found'),\r\n\t'.tv' \t\t=&amp;gt; array('whois.nic.tv', 'No match for'),\r\n);\r\n###########\r\n\r\nif(isset($_GET&#x5B;'domain']))\r\n{\r\n\t$domain = str_replace(array('www.', 'http:\/\/','\/'), NULL, $_GET&#x5B;'domain']);\r\n\r\n\tif(strlen($domain) &amp;gt; 0)\r\n\t{\r\n\t\tforeach($extensions as $extension =&amp;gt; $who)\r\n\t\t{\r\n\t\t\t$buffer = NULL;\r\n\r\n\t\t\t$sock = fsockopen($who&#x5B;0], 43) or die('Error Connecting To Server:' . $server);\r\n\t\t\tfputs($sock, $domain.$extension . &quot;\\r\\n&quot;);\r\n\r\n\t\t\t\twhile( !feof($sock) )\r\n\t\t\t\t{\r\n\t\t\t\t  \t$buffer .= fgets($sock,128);\r\n\t\t\t\t}\r\n\r\n\t\t\tfclose($sock);\r\n\r\n\t\t\tif(eregi($who&#x5B;1], $buffer))\r\n\t\t\t{\r\n\t\t\t\techo '&amp;lt;h4 class=&quot;available&quot;&amp;gt;&amp;lt;span&amp;gt;Disponible&amp;lt;\/span&amp;gt;' . $domain. '&amp;lt;b&amp;gt;' . $extension .'&amp;lt;\/b&amp;gt; Esta Disponible&amp;lt;\/h4&amp;gt;';\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\techo '&amp;lt;h4 class=&quot;taken&quot;&amp;gt;&amp;lt;span&amp;gt;Tomado&amp;lt;\/span&amp;gt;' . $domain . '&amp;lt;b&amp;gt;' .$extension .'&amp;lt;\/b&amp;gt; Esta Tomado&amp;lt;\/h4&amp;gt;';\r\n\t\t\t}\r\n\t\t\techo '&amp;lt;br \/&amp;gt;';\t\r\n\r\n\t\t\tob_flush();\r\n\t\t\tflush();\r\n\t\t\tsleep(0.3);\r\n\r\n\t\t}\r\n\t}\r\n\telse\r\n\t{\r\n\t\techo 'Por favor ingrese nombre del dominio';\r\n\t}\r\n}\r\n?&amp;gt;&lt;\/pre&gt;\r\nEste archivo es el que recibe los parametros y realiza la busqueda del valor ingresado, creando un array con los prefijos de los dominios mas usados\u00a0y nos devuelve los valores.\r\n&lt;h5&gt;main.css&lt;\/h5&gt;\r\n&lt;pre class=&quot;brush:css&quot;&gt;body {\r\n\tfont-family: Tahoma, sans-serif;\r\n\tfont-size: 12px;\r\n\tfont-weight: bold; }\r\n\r\n.cabecera {\r\n\tbackground: #4A3C31;\r\n\tborder-bottom: 5px solid #69AD3C;\r\n\tmargin: -8px 0 0 -8px;\r\n\twidth: 100%; }\r\n\r\n\t.cabecera img { margin: 40px 0 0 30px; }\r\n\r\n#loading { display: none; }\r\n\r\n#form {\r\n\twidth: 520px;\r\n\tbackground-color: #4A3C31;\r\n\tpadding: 40px 50px 30px;\r\n\tmargin: 10px 0;\r\n\tposition: relative;\r\n\tborder-radius: 15px;\r\n\t-moz-border-radius: 15px;\r\n\t-webkit-border-radius: 15px;\r\n\t-moz-border-radius: 15px 15px 15px 15px;\r\n\tborder: solid 5px #69AD3C; }\r\n\r\n#Search {\r\n\tborder: medium none;\r\n\tcolor: #888888;\r\n\tfloat: left;\r\n\tfont-family: Arial,Helvetica,Sans-serif;\r\n\tfont-size: 15px;\r\n\theight: 36px;\r\n\tmargin-right: 12px;\r\n\toutline: medium none;\r\n\tpadding: 0 0 0 35px;\r\n\ttext-shadow: 1px 1px 0 white;\r\n\twidth: 425px; }\r\n\r\n#Submit {\r\n\tbackground: url(&quot;Search.png&quot;) no-repeat scroll 0 0 transparent;\r\n\tborder: medium none;\r\n\tcursor: pointer;\r\n\theight: 36px;\r\n\toverflow: hidden;\r\n\ttext-indent: -999px;\r\n\ttext-transform: uppercase;\r\n\twidth: 83px; }\r\n\r\nh4 {\r\n\tborder: 2px solid #EEEEEE;\r\n\tfont: 14px\/1.3 Verdana,&quot;Lucida Grande&quot;,Arial,Helvetica,Sans-Serif;\r\n\tmargin: 0px;\r\n\tpadding: 5px;\r\n\tmin-width: 120px;\r\n\ttext-align: left }\r\n\r\n\th4.taken span { background: none repeat scroll 0 0 #F08F78; }\r\n\r\n\th4.taken:hover { background: none repeat scroll 0 0 #FFC5B7; }\r\n\r\n\th4 a { font-family:&quot;crete-rounded-web-1&quot;,&quot;crete-rounded-web-2&quot;,sans-serif; color: #333333 }\r\n\r\n\th4 span {\r\n\t\tfont-family: Verdana;\r\n\t\tfont-size: 12px;\r\n\t\tfont-style: normal;\r\n\t\tmargin-right: 4px;\r\n\t\tpadding: 3px 5px; }\r\n\r\n\th4.available:hover { background: none repeat scroll 0 0 #DDF2BC; }\r\n\r\n\th4.available span { background: #bce67b; }<\/pre>\n<p>Esto es para darle un poco de vistosidad a nuestro ejercicio, espero que le sirva y cualquier duda pueden comentar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este post vamos a ver como realizar un script que me permita verificar la disponibilidad de los dominios, echo principalmente con\u00a0PHP\u00a0y utilizando un poco de\u00a0ajax\u00a0con\u00a0Json\u00a0y\u00a0jQuery. Crearemos 2 archivos php&hellip;<\/p>\n","protected":false},"author":1,"featured_media":490,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-39","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php"],"_links":{"self":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts\/39","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/comments?post=39"}],"version-history":[{"count":0,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/posts\/39\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/media\/490"}],"wp:attachment":[{"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/media?parent=39"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/categories?post=39"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/emanuelpaxtian.com\/blog\/wp-json\/wp\/v2\/tags?post=39"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}