Como colocar um verificador de domínios em seu site

Essa função vai para quem tem interesse de ter um verificador de disponibilidade de domínios no próprio site. Ótimo para quem trabalha com venda de hospedagens e domínios.

Essa função foi criada por brunohcs e o link original é http://www.nafaixa.net/artigos/326/whois-de-dominios-em-seu-site.htm

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
82
83
84
85
86
87
88
89
90
91
<?php
function whois ($domain, $tipo){
    $buffer=""; $dados="";
    $server[0] = "whois.registro.br";
    $server[1] = "whois.internic.net";
    $server[2] = "whois.networksolutions.com";
    $domain = strtolower($domain);
    if (trim($domain) <> ""){
        $domain = trim($domain);
        $final = substr($domain, -4);
        if (substr("$domain", -3) == ".br"){
            $br = fsockopen($server[0], 43, $errno, $errstr, 30);
            if (!$br){
                $dados .= "$errstr ($errno)";
            }
            else {
                fputs($br, "$domainrn");
                while (!feof($br)){
                    $buffer .= fread($br,128);
                }
                if ($tipo == 1){
                    if (strpos($buffer, "No match for") > 0) $dados .= false; else $dados .= true;
                }
                else {
                    $dados .= str_replace("n","<BR>n",trim($buffer));
                }
                fclose ($br);
            }
        }
        elseif (($final == '.com') OR ($final == '.net') OR ($final == '.org') OR ($final == '.edu')){
            $internic = fsockopen($server[1], 43, $errno, $errstr, 30);
            if (!$internic){
                $dados .= "$errstr ($errno)";
            }
            else {
                fputs($internic, "$domainrn");
                while (!feof($internic)){
                    $buffer .= fread($internic,128);
                }
                if ($tipo == 1){
                    if (strpos($buffer, "No match for") > 0) $dados .= false; else $dados .= true;
                }
                else {
                    if (strpos($buffer, "No match for") > 0){
                        $dados .= trim($buffer);
                    }
                    else {
                        $servidor = substr($buffer, strpos($buffer, "Whois Server:")+14, strlen($buffer));
                        $servidor = substr($servidor, 0, strpos($servidor, "n"));
                        $entidade = fsockopen("$servidor", 43, $errno, $errstr, 30);
                        if (!$entidade){
                            $dados .= "$errstr ($errno)";
                        }
                        else {
                            $buffer .= "-------------------------------------------------------------------------------<BR> <BR>";
                            fputs($entidade, "$domainrn");
                            while (!feof($entidade)){
                                $buffer .= fread($entidade,128);
                            }
                            $dados .= str_replace("n","<BR>n",trim($buffer));
                            fclose ($entidade);
                        }
                    }
                }
                fclose ($internic);
            }
 
        }
        else {
            $network = fsockopen($server[2], 43, $errno, $errstr, 30);
            if (!$network){
                $dados .= "$errstr ($errno)";
            }
            else {
                fputs($network, "$domainrn");
                while (!feof($network)){
                    $buffer .= fread($network,128);
                }
                if ($tipo == 1){
                    if (strpos($buffer, "NOT FOUND") > 0) $dados .= false; else $dados .= true;
                }
                else {
                    $dados .= str_replace("n","<BR>n",trim($buffer));
                }
                fclose ($network);
            }
        }
    }
    return $dados;
}
?>

Essa é a função responsável por fazer a verificação de domínios .com, .com.br e .net. Agora vamos ao formulário e à utilização da função.

<form method="get">
www.<input type="text" name="dominio" size="30"/>
<select name="extensao">
   <option value=".com.br">.com.br</option>
   <option value=".com">.com</option>
   <option value=".net">.net</option>        
</select>
<input type="submit" value="Consultar Domínio" />
</form>
<?php
   if(isset($_GET['dominio'] && isset($_GET['extensao']){
          $dominio = $_GET['dominio'];
 
          if(whois($dominio, 1) == 1){
              echo "O domínio " . $dominio . " NÃO ESTÁ disponivel";
          }
          else{
              echo "O domínio " . $dominio . " ESTÁ disponivel";
          }
   }
?>

Espero ter ajudado!

Abs

Siga-me no twitter: @rafaelwendel

É formado em Sistemas de Informação, pós-graduado em Sistemas de Banco de Dados e mestre em Educação com foco em Tecnologias Sociocomunitárias. Trabalha como professor de ensino técnico e tecnológico no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo ministrando disciplinas nas áreas de programação, banco de dados, desenvolvimento de projetos e engenharia de software.

Posts relacionados

Comentários

  1. Olá amigo, apenas uma correção, o script não foi criado por brunohcs, o site http://www.nafaixa.net é meu mas não fui eu quem criou e não tenho fonte original desse script.

    Obrigado por manter o link de fonte.

    E se por acaso descobrir ou alguém indicar o autor coloco também no meu site.

    Att.
    Bruno Souza.

  2. Cara tem um erro dentro do teu if
    ele está assim:

    //if(isset($_GET[‘dominio’] && isset($_GET[‘extensao’]){
    $dominio = $_GET[‘dominio’];

    sendo que deve ser:

    // if(!empty($_GET[“dominio”])) { $dominio=$_GET[“dominio”].$_GET[“extencao”];

  3. Olá pessoal,

    este é código é bastante antigo (de 2007 aprox) e por isso está com alguns problemas. peço que dêem uma olhada no site registro.br que lá eles dão um help bacana para colocar verificador de dominios no site.

    abs

  4. Segue código em funcionamento:

    buscar.php

    Documento sem título

    www.

    .com.br
    .com
    .net

    consulta.php
    Domínios Nacionais
    $server[1] = "whois.internic.net"; //--> Domínios .com, .net, .edu
    $server[2] = "whois.networksolutions.com"; //--> Domínios .aero, .arpa, .biz, .coop, .info, .int, .museum

    $domain = strtolower($domain);
    if (trim($domain) "") {
    $domain = trim($domain);
    $final = substr($domain, -4);
    // Verifica dominios do brasil
    if (substr("$domain", -3) == ".br") {
    $br = fsockopen($server[0], 43, $errno, $errstr, 30);
    if (!$br) {
    $dados .= "$errstr ($errno)";
    } else {
    fputs($br, "$domain\r\n");
    while (!feof($br)) {
    $buffer .= fread($br,128);
    }
    if ($tipo == 1) {
    if (strpos($buffer, "No match for") > 0) $dados .= false; else $dados .= true;
    } else {
    $dados .= str_replace("\n","\n",trim($buffer));
    }
    fclose ($br);
    }

    // Verifica domínios .com, .net, .edu
    } elseif (($final == '.com') OR ($final == '.net') OR ($final == '.edu')) {
    $internic = fsockopen($server[1], 43, $errno, $errstr, 30);
    if (!$internic) {
    $dados .= "$errstr ($errno)";
    } else {
    fputs($internic, "$domain\r\n");
    while (!feof($internic)) {
    $buffer .= fread($internic,128);
    }
    if ($tipo == 1) {
    if (strpos($buffer, "No match for") > 0) $dados .= false; else $dados .= true;
    } else {
    if (strpos($buffer, "No match for") > 0) {
    $dados .= trim($buffer);
    } else {
    $dados .= str_replace("\n","",$buffer);
    $dados .= "-------------------------------------------------------------------------------------------";

    $servidor = str_replace("Whois Server Version 1.3","",$buffer);
    $servidor = substr($servidor, strpos($servidor, "Whois Server:")+14, strlen($servidor));
    $servidor = substr($servidor, 0, strpos($servidor, "\n"));
    $entidade = fsockopen("$servidor", 43, $errno, $errstr, 30);
    if (!$entidade) {
    $dados .= "$errstr ($errno)";
    } else {
    fputs($entidade, "$domain\r\n");
    while (!feof($entidade)) {
    $retorna .= fread($entidade,128);
    }
    $dados .= str_replace("\n","\n",trim($retorna));
    fclose ($entidade);
    }
    }
    }
    fclose ($internic);
    }

    // Verifica os outros inclusive .ORG
    } else {
    $network = fsockopen($server[2], 43, $errno, $errstr, 30);
    if (!$network) {
    $dados .= "$errstr ($errno)";
    } else {
    fputs($network, "$domain\r\n");
    while (!feof($network)) {
    $buffer .= fread($network,128);
    }
    if ($tipo == 1) {
    if (strpos($buffer, "NOT FOUND") > 0) $dados .= false; else $dados .= true;
    } else {
    $dados .= str_replace("\n","\n",trim($buffer));
    }
    fclose ($network);
    }
    }
    }
    return $dados;
    }
    ?>

    A funcção eu tirei do site: http://wv.brasilnetwork.com.br/2009/01/28/saiba-como-consultar-um-whois-com-php-whois
    O formulário é o mesmo do post porém corrigido.
    Testado e aprovado! 😀

  5. Estou iniciando e não sei como colocar o script dentro do wordpress. Poderia me ajudar explicando os locais e como fazer para incluir o script?
    Valeu!

  6. Rafael,

    Aí está a dificuldade, estou criando um site de hospedagem de sites e gostaria do verificador.
    surge muita coisa qdo abro o editor, e aí fica a dúvida em qual arquivo incluir.
    Lá tem content.php, feature.php, custom-header.php e muitos outros.
    Meu site não terá posts somente páginas e barra lateral com acesso a helpdesk, anúncios e outras coisas mais.
    Valeu!

  7. Gostaria de saber se tem como criar um script que faça a verificação da disponibilidade de um domínios a partir de uma lista de palavras.

  8. Funcionando: Testado em 12/07/2021

    Arquivo único:

    www.

    .com.br
    .com
    .net

    <?php
    if(isset($_GET['dominio']) && isset($_GET['extensao'])){
    $dominio = $_GET['dominio'].$_GET['extensao'];
    if(whois($dominio, 1) == 1){
    echo "O domínio $dominio NÃO ESTÁ disponivel”;
    echo ”;
    // echo whois($dominio,2);
    // var_dump(whois($dominio,2));
    }
    else{
    echo “O domínio $dominio ESTÁ disponivel”;
    }
    }
    function whois ($domain, $tipo){
    $buffer=””; $dados=””;
    $server[0] = “whois.registro.br”;
    $server[1] = “whois.internic.net”;
    $server[2] = “whois.networksolutions.com”;
    $domain = strtolower($domain);
    if (trim($domain) “”){
    $domain = trim($domain);
    $final = substr($domain, -4);
    if (substr(“$domain”, -3) == “.br”){
    $br = fsockopen($server[0], 43, $errno, $errstr, 30);
    if (!$br){
    $dados .= “$errstr ($errno)”;
    }
    else {
    fputs($br, “$domain\r\n”);
    while (!feof($br)){
    $buffer .= fread($br,128);
    }
    if ($tipo == 1){
    if (strpos($buffer, “No match for”) > 0) $dados .= false; else $dados .= true;
    }
    else {
    $dados .= str_replace(“n”,”n”,trim($buffer));
    }
    fclose ($br);
    }
    }
    elseif (($final == ‘.com’) OR ($final == ‘.net’) OR ($final == ‘.org’) OR ($final == ‘.edu’)){
    $internic = fsockopen($server[1], 43, $errno, $errstr, 30);
    if (!$internic){
    $dados .= “$errstr ($errno)”;
    }
    else {
    fputs($internic, “$domain\r\n”);
    while (!feof($internic)){
    $buffer .= fread($internic,128);
    }
    if ($tipo == 1){
    if (strpos($buffer, “No match for”) > 0) $dados .= false; else $dados .= true;
    }
    else {
    if (strpos($buffer, “No match for”) > 0){
    $dados .= trim($buffer);
    }
    else {
    $servidor = substr($buffer, strpos($buffer, “Whois Server:”)+14, strlen($buffer));
    $servidor = substr($servidor, 0, strpos($servidor, “n”));
    $entidade = fsockopen(“$servidor”, 43, $errno, $errstr, 30);
    if (!$entidade){
    $dados .= “$errstr ($errno)”;
    }
    else {
    $buffer .= “——————————————————————————- “;
    fputs($entidade, “$domain\r\n”);
    while (!feof($entidade)){
    $buffer .= fread($entidade,128);
    }
    $dados .= str_replace(“n”,”n”,trim($buffer));
    fclose ($entidade);
    }
    }
    }
    fclose ($internic);
    }
    }
    else {
    $network = fsockopen($server[2], 43, $errno, $errstr, 30);
    if (!$network){
    $dados .= “$errstr ($errno)”;
    }
    else {
    fputs($network, “$domain\r\n”);
    while (!feof($network)){
    $buffer .= fread($network,128);
    }
    if ($tipo == 1){
    if (strpos($buffer, “NOT FOUND”) > 0) $dados .= false; else $dados .= true;
    }
    else {
    $dados .= str_replace(“n”,”n”,trim($buffer));
    }
    fclose ($network);
    }
    }
    }
    return $dados;
    }
    ?>

  9. Código corrigido, testado e aprovado em 11/11/2021
    Resultado: FUNCIONANDO PERFEITAMENTE

    PS: tudo em um único arquivo

    www.

    .com.br
    .com
    .net

    <?php
    if(isset($_GET['dominio']) && isset($_GET['extensao'])){
    $dominio = $_GET['dominio'].$_GET['extensao'];
    if(whois($dominio, 1) == 1){
    echo "O domínio $dominio NÃO ESTÁ disponivel";
    echo "";
    // echo whois($dominio,2);
    // var_dump(whois($dominio,2));
    }
    else{
    echo "O domínio $dominio ESTÁ disponivel";
    }
    }
    function whois ($domain, $tipo){
    $buffer=""; $dados="";
    $server[0] = "whois.registro.br";
    $server[1] = "whois.internic.net";
    $server[2] = "whois.networksolutions.com";
    $domain = strtolower($domain);
    if (trim($domain) “”){
    $domain = trim($domain);
    $final = substr($domain, -4);
    if (substr(“$domain”, -3) == “.br”){
    $br = fsockopen($server[0], 43, $errno, $errstr, 30);
    if (!$br){
    $dados .= “$errstr ($errno)”;
    }
    else {
    fputs($br, “$domain\r\n”);
    while (!feof($br)){
    $buffer .= fread($br,128);
    }
    if ($tipo == 1){
    if (strpos($buffer, “No match for”) > 0) $dados .= false; else $dados .= true;
    }
    else {
    $dados .= str_replace(“n”,”n”,trim($buffer));
    }
    fclose ($br);
    }
    }
    elseif (($final == ‘.com’) OR ($final == ‘.net’) OR ($final == ‘.org’) OR ($final == ‘.edu’)){
    $internic = fsockopen($server[1], 43, $errno, $errstr, 30);
    if (!$internic){
    $dados .= “$errstr ($errno)”;
    }
    else {
    fputs($internic, “$domain\r\n”);
    while (!feof($internic)){
    $buffer .= fread($internic,128);
    }
    if ($tipo == 1){
    if (strpos($buffer, “No match for”) > 0) $dados .= false; else $dados .= true;
    }
    else {
    if (strpos($buffer, “No match for”) > 0){
    $dados .= trim($buffer);
    }
    else {
    $servidor = substr($buffer, strpos($buffer, “Whois Server:”)+14, strlen($buffer));
    $servidor = substr($servidor, 0, strpos($servidor, “n”));
    $entidade = fsockopen(“$servidor”, 43, $errno, $errstr, 30);
    if (!$entidade){
    $dados .= “$errstr ($errno)”;
    }
    else {
    $buffer .= “——————————————————————————- “;
    fputs($entidade, “$domain\r\n”);
    while (!feof($entidade)){
    $buffer .= fread($entidade,128);
    }
    $dados .= str_replace(“n”,”n”,trim($buffer));
    fclose ($entidade);
    }
    }
    }
    fclose ($internic);
    }
    }
    else {
    $network = fsockopen($server[2], 43, $errno, $errstr, 30);
    if (!$network){
    $dados .= “$errstr ($errno)”;
    }
    else {
    fputs($network, “$domain\r\n”);
    while (!feof($network)){
    $buffer .= fread($network,128);
    }
    if ($tipo == 1){
    if (strpos($buffer, “NOT FOUND”) > 0) $dados .= false; else $dados .= true;
    }
    else {
    $dados .= str_replace(“n”,”n”,trim($buffer));
    }
    fclose ($network);
    }
    }
    }
    return $dados;
    }
    ?>

  10. Aqui funcionou, mas tive que alterar alguns pontos.
    1 – Como já dito nos comentários tem que substituir $domainrn por $domain
    2 – tem concatenar os GETS assim: $dominio = $_GET[“dominio”] . $_GET[“extensao”];

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *