Foros del Web » Programando para Internet » PHP »

Corregir este codigo para whois

Estas en el tema de Corregir este codigo para whois en el foro de PHP en Foros del Web. Hola: Encontre por alli este codigo que buscaba para hacer un whois en mi web. Despues de modificar algunas cosas, logro obtener correctamente los resultados, ...
  #1 (permalink)  
Antiguo 23/06/2005, 22:19
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
Corregir este codigo para whois

Hola:

Encontre por alli este codigo que buscaba para hacer un whois en mi web.

Despues de modificar algunas cosas, logro obtener correctamente los resultados, pero siempre me indica que el dominio esta ocupado.

Me parece que el error viene en la parte inferior del codigo, al mostrar los resultados.

Pueden ayudarme a perfeccionarlo?

El formulario:
Código HTML:
<form name="dominios" method="post" action="dom.php">
		    <table width="200" border="0">
              <tr>
                <td><div align="right" class="tah11"><font class="tah11" style="color:7F7F7F">www.</font>
                      <input name="dom" type="text" class="tah11" id="dom" size="15">
                      <select name="tipo" class="tah11" id="tipo" onchange="document.forms.dominios.submit();return false">
                        <option value="null" selected>elegir</option>
                        <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>
                </div></td>
              </tr>
            </table>
		    </form> 
El codigo que hace la consulta:
Código PHP:
<?php
/* Definimos unos parámetros a los que más tarde llamaremos.
PAGINA es el lugar En que queremos mostrar los resultados. En este caso
hemos optado por hacerlo en la misma página (dom.php) */
define('VER_INFORMACION''Ver información del Dominio');
define('VER_LA_WEB''Visitar el Sitio Web');
define('PAGINA''dom.php');
/* Definimos el servidor al que nos conectaremos
para la consulta. En este caso es el de dominios .com */
define('COM_SERVER'"whois.opensrs.net");
define('COM_NOMATCH'"Información no disponible");
define('COM_INCLUDE'true);
/* Definimos el servidor al que nos conectaremos
para la consulta. En este caso es el de dominios .net */
define('NET_SERVER'"whois.opensrs.net");
define('NET_NOMATCH'"Información no disponible");
define('NET_INCLUDE'true);
/* Comprobamos y redefinimos las variables recibidas del formulario */
if ($_POST['tipo']!=""define('TIPO'$_POST['tipo']); else define('TIPO''');
if (
$_POST['dom']!=""define('DOM'$_POST['dom']); else define('DOM''');
/* Esta función nos mostrará los dominios disponibles */
function dispon($dominio)
{
echo 
'<b>Resultado de su consulta<br><br>
El Dominio '
.$dominio.' está disponible.</b><br><br>';
}
/* Esta función nos mostrará los dominios que está ocupados */
function nodispon($dominio$sitio)
{
echo 
'<b>Resultado de su consulta<br><br>
El Dominio '
.$dominio.' no está disponible.</b><br><br>
<a href="'
.PAGINA.'?action=detalles&dom='.$dominio.'&server='.$sitio.'"
target="_blank" class="tahbol">'
.VER_INFORMACION.'</a><br>
<a href="http://www.'
.$dominio.'" target="_blank" class="tahbol">'.VER_LA_WEB.'</a><br><br>
<form><input type="button" value="Volver a entre2.com" onclick="javascript:history.back()"></form>
'
;
/* Si el dominio está ocupado, se ofrecerán dos opciones:
Conocer los detalles (la información del Whois) y visitar la web.
Este código sirve para que se abra una ventana con la información del Wois. */
}
if (
$_GET['action'] == "detalles")
{
$server $_GET['server'];
$dom $_GET['dom'];
pageheader();
echo 
'<div align=left><pre>';
$fp fsockopen($server,43);
fputs($fp"$dom\r\n");
while(!
feof($fp))
{
echo 
fgets($fp,128);
}
fclose($fp);
echo 
'</pre>';
echo 
'<center><form><input type="button" value="Cerrar la ventana"
onclick="window.close()"></form></center>'
;
exit;
}
/* Definimos la página que se abrirá con el código anterior.
En este caso, es HTML y sólo le hemos puesto color. */
function pageheader()
{
echo 
'
<html>
<head>
</head>
<body bgcolor="#FFFFFF">
</body>
</html>'
;
}
/* Comprobamos que el nombre de dominio no tenga menos de tres caracteres */
if(strlen(DOM) < 3)
{
echo 
'El Dominio ha de tener tres caracteres como mínimo';
exit;
}
/* Comprobamos que el nombre del dominio no tenga más de sesenta y tres caracteres */
if(strlen(DOM) > 63)
{
echo 
'El Dominio no ha de tener más de 63 caracteres';
exit;
}
/* Comprobamos que en el nombre del dominio no haya determinados caracteres */
if(ereg("^-|-$",DOM))
{
echo 
'El Dominio solicitado contiene caracteres no válidos';
exit;
}
/* Comprobamos si el nombre del dominio contiene los caracteres que permitimos. */
if(!ereg("([a-z]|[A-Z]|[0-9]|-){".strlen(DOM)."}",DOM))
{
echo 
'El Dominio solicitado contiene caracteres no válidos';
exit;
}
/* Comprobamos si la consulta es sobre un dominio .com
y nos conectamos al servidor*/
if (TIPO == "com")
{
$dom DOM.".com";
$ns fsockopen(COM_SERVER,43); fputs($ns,"$dom\r\n");
$resu '';
while(!
feof($ns)) $resu .= fgets($ns,128); fclose($ns);
if (
eregi(COM_NOMATCH,$resu)) { dispon($dom); } else {
nodispon($dom,COM_SERVER); }
}

else if (
TIPO == "net")
{
$dom DOM.".net";
$ns fsockopen(NET_SERVER,43); fputs($ns,"$dom\r\n");
$resu '';
while(!
feof($ns)) $resu .= fgets($ns,128); fclose($ns);
if (
eregi(NET_NOMATCH,$resu)) { dispon($dom); } else {
nodispon($dom,NET_SERVER); }
}
/* Si la conexión no ha sido posible, se lo indicamos al usuario.*/
else
echo 
'La consulta no ha podido realizarse. Inténtelo de nuevo.<br><br>
<form><input type="button" value="Volver a entre2.com" onclick="javascript:history.back()"></form>'
;
exit;
?>
Otra cosa, donde encuentro las direcciones a consultar para los dominios .org, .biz y .info?

Gracias
  #2 (permalink)  
Antiguo 23/06/2005, 22:22
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
Por cierto, el resultado mostrado, cualquiera sea la consulta es:

Resultado de su consulta

El Dominio sdasdasda.net (o lo que sea) no está disponible.

Ver información del Dominio
Visitar el Sitio Web


aqui va un boton de volver atras
  #3 (permalink)  
Antiguo 24/06/2005, 11:14
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
Nadie me ayuda????
  #4 (permalink)  
Antiguo 24/06/2005, 11:47
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
Modifique el script con las demas extensiones pero ahora me da otra respuesta...

El script:
Código PHP:
<?php
/* Definimos unos parámetros a los que más tarde llamaremos.
PAGINA es el lugar En que queremos mostrar los resultados. En este caso
hemos optado por hacerlo en la misma página (dom.php) */
define('VER_INFORMACION''Ver información del Dominio');
define('VER_LA_WEB''Visitar el Sitio Web');
define('PAGINA''dom.php');
/* Definimos el servidor al que nos conectaremos
para la consulta. En este caso es el de dominios .com */
define('COM_SERVER'"whois.opensrs.net");
define('COM_NOMATCH'"Información no disponible");
define('COM_INCLUDE'true);
/* Definimos el servidor al que nos conectaremos
para la consulta. En este caso es el de dominios .net */
define('NET_SERVER'"whois.opensrs.net");
define('NET_NOMATCH'"Información no disponible");
define('NET_INCLUDE'true);
/* Definimos el servidor al que nos conectaremos
para la consulta. En este caso es el de dominios .org */
define('ORG_SERVER'"whois.pir.org");
define('ORG_NOMATCH'"Información no disponible");
define('ORG_INCLUDE'true);
/* Definimos el servidor al que nos conectaremos
para la consulta. En este caso es el de dominios .biz */
define('BIZ_SERVER'"whois.nic.biz");
define('BIZ_NOMATCH'"Información no disponible");
define('BIZ_INCLUDE'true);
/* Definimos el servidor al que nos conectaremos
para la consulta. En este caso es el de dominios .info */
define('INFO_SERVER'"whois.afilias.net");
define('INFO_NOMATCH'"Información no disponible");
define('INFO_INCLUDE'true);
/* Comprobamos y redefinimos las variables recibidas del formulario */
if ($_POST['tipo']!=""define('TIPO'$_POST['tipo']); else define('TIPO''');
if (
$_POST['dom']!=""define('DOM'$_POST['dom']); else define('DOM''');
/* Esta función nos mostrará los dominios disponibles */
function dispon($dominio)
{
echo 
'<b>Resultado de su consulta<br><br>
El Dominio '
.$dominio.' está disponible.</b><br><br>';
}
/* Esta función nos mostrará los dominios que está ocupados */
function nodispon($dominio$sitio)
{
echo 
'<b>Resultado de su consulta<br><br>
El Dominio '
.$dominio.' no está disponible.</b><br><br>
<a href="'
.PAGINA.'?action=detalles&dom='.$dominio.'&server='.$sitio.'"
target="_blank" class="tahbol">'
.VER_INFORMACION.'</a><br>
<a href="http://www.'
.$dominio.'" target="_blank" class="tahbol">'.VER_LA_WEB.'</a><br><br>
<form><input type="button" value="Volver a entre2.com" onclick="javascript:history.back()"></form>
'
;
/* Si el dominio está ocupado, se ofrecerán dos opciones:
Conocer los detalles (la información del Whois) y visitar la web.
Este código sirve para que se abra una ventana con la información del Wois. */
}
if (
$_GET['action'] == "detalles")
{
$server $_GET['server'];
$dom $_GET['dom'];
pageheader();
echo 
'<div align=left><pre>';
$fp fsockopen($server,43);
fputs($fp"$dom\r\n");
while(!
feof($fp))
{
echo 
fgets($fp,128);
}
fclose($fp);
echo 
'</pre>';
echo 
'<center><form><input type="button" value="Cerrar la ventana"
onclick="window.close()"></form></center>'
;
exit;
}
/* Definimos la página que se abrirá con el código anterior.
En este caso, es HTML y sólo le hemos puesto color. */
function pageheader()
{
echo 
'
<html>
<head>
</head>
<body bgcolor="#FFFFFF">
</body>
</html>'
;
}
/* Comprobamos que el nombre de dominio no tenga menos de tres caracteres */
if(strlen(DOM) < 3)
{
echo 
'El Dominio ha de tener tres caracteres como mínimo';
exit;
}
/* Comprobamos que el nombre del dominio no tenga más de sesenta y tres caracteres */
if(strlen(DOM) > 63)
{
echo 
'El Dominio no ha de tener más de 63 caracteres';
exit;
}
/* Comprobamos que en el nombre del dominio no haya determinados caracteres */
if(ereg("^-|-$",DOM))
{
echo 
'El Dominio solicitado contiene caracteres no válidos';
exit;
}
/* Comprobamos si el nombre del dominio contiene los caracteres que permitimos. */
if(!ereg("([a-z]|[A-Z]|[0-9]|-){".strlen(DOM)."}",DOM))
{
echo 
'El Dominio solicitado contiene caracteres no válidos';
exit;
}
/* Comprobamos si la consulta es sobre un dominio .com
y nos conectamos al servidor*/
if (TIPO == "com")
{
$dom DOM.".com";
$ns fsockopen(COM_SERVER,43); fputs($ns,"$dom\r\n");
$resu '';
while(!
feof($ns)) $resu .= fgets($ns,128); fclose($ns);
if (
eregi(COM_NOMATCH,$resu)) { dispon($dom); } else {
nodispon($dom,COM_SERVER); }
}
/* Comprobamos si la consulta es sobre un dominio .net
y nos conectamos al servidor*/
if (TIPO == "net")
{
$dom DOM.".net";
$ns fsockopen(NET_SERVER,43); fputs($ns,"$dom\r\n");
$resu '';
while(!
feof($ns)) $resu .= fgets($ns,128); fclose($ns);
if (
eregi(NET_NOMATCH,$resu)) { dispon($dom); } else {
nodispon($dom,NET_SERVER); }
}
/* Comprobamos si la consulta es sobre un dominio .org
y nos conectamos al servidor*/
if (TIPO == "org")
{
$dom DOM.".org";
$ns fsockopen(ORG_SERVER,43); fputs($ns,"$dom\r\n");
$resu '';
while(!
feof($ns)) $resu .= fgets($ns,128); fclose($ns);
if (
eregi(ORG_NOMATCH,$resu)) { dispon($dom); } else {
nodispon($dom,ORG_SERVER); }
}
/* Comprobamos si la consulta es sobre un dominio .biz
y nos conectamos al servidor*/
if (TIPO == "biz")
{
$dom DOM.".biz";
$ns fsockopen(BIZ_SERVER,43); fputs($ns,"$dom\r\n");
$resu '';
while(!
feof($ns)) $resu .= fgets($ns,128); fclose($ns);
if (
eregi(BIZ_NOMATCH,$resu)) { dispon($dom); } else {
nodispon($dom,BIZ_SERVER); }
}
/* Comprobamos si la consulta es sobre un dominio .info
y nos conectamos al servidor*/
if (TIPO == "info")
{
$dom DOM.".info";
$ns fsockopen(INFO_SERVER,43); fputs($ns,"$dom\r\n");
$resu '';
while(!
feof($ns)) $resu .= fgets($ns,128); fclose($ns);
if (
eregi(INFO_NOMATCH,$resu)) { dispon($dom); } else {
nodispon($dom,INFO_SERVER); }
}
/* Si la conexión no ha sido posible, se lo indicamos al usuario.*/
else
echo 
'La consulta no ha podido realizarse. Inténtelo de nuevo.<br><br>
<form><input type="button" value="Volver a entre2.com" onclick="javascript:history.back()"></form>'
;
exit;
?>
La respuesta es (cuando consulto com, net, org o biz):

Resultado de su consulta

El Dominio njelectronic.biz no está disponible.

Ver información del Dominio
Visitar el Sitio Web

AQUI BOTON DE ATRAS

La consulta no ha podido realizarse. Inténtelo de nuevo.

AQUI BOTON DE ATRAS


Y si consulto info:

El Dominio njelectronic.info no está disponible.

Ver información del Dominio
Visitar el Sitio Web

AQUI BOTON DE ATRAS
  #5 (permalink)  
Antiguo 25/06/2005, 11:04
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
Por mas que he buscado, incluso aqui en el foro, no encuentro corregir solo este codigo.
Please, alguien que me de una mano
  #6 (permalink)  
Antiguo 25/06/2005, 11:07
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Ahhh.

1. No te impacientes en la respuesta, tu solo ten paciencia.

2. Me imagino que como usas Sockets en tu script y tu servidor no soporta conexiones a Socket, por eso no te manda resultados.
  #7 (permalink)  
Antiguo 25/06/2005, 11:13
 
Fecha de Ingreso: noviembre-2002
Ubicación: Colombia
Mensajes: 278
Antigüedad: 21 años, 5 meses
Puntos: 0
gracias por responder...
no estoy claro con lo delos sockets...
tienes alguna sugerencia para corregirlo?
  #8 (permalink)  
Antiguo 27/06/2005, 14:03
 
Fecha de Ingreso: diciembre-2003
Mensajes: 169
Antigüedad: 20 años, 4 meses
Puntos: 0
Esstoy buscando un codigo tambien, sin embargo encontre un link que puedes poner y jala de otra pagina
http://www.chatox.com/whois/whois.html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:35.