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
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.
não está funcionando aqui, o primeiro código tem que colocar na head?
Código correto é
E se não quiser passar os dados para url é só trocar GET por POST
No meu site, não funcionou também.
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”];
Cara o meu tem o msm problema como posso resolve-la
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
ta beleza rafael vlw
a variavel $domainrn esta errada é so substituir por $domain que funciona perfeitamente!
Valew!!
Essa classe não funciona. Simplesmente não faz absolutamente nada.
Não me ajudou 🙁
Não sei como é permitido colocar códigos não funcionais no site.. fazem a maioria dos iniciantes perderem tempo. 🙁
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! 😀
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!
Olá Ianovich,
Vá no próprio editor de códigos do WP. Quando você logar como Administrador, vá em Aparência -> Editor. Abra o arquivo onde deseja colocar o verificador e implemente o código.
Abs!
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!
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.
Alguém poderia me mandar o codigo funcionando?
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;
}
?>
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;
}
?>
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”];