Foros del Web » Programando para Internet » PHP »

Dominios tk, dirección existe.

Estas en el tema de Dominios tk, dirección existe. en el foro de PHP en Foros del Web. Estoy haciendo un pequeño programa para que los usuarios sugieran webs, comprobando que la página indicada existe realmente. Funciona con las direcciones que he probado ...
  #1 (permalink)  
Antiguo 24/10/2003, 07:07
 
Fecha de Ingreso: octubre-2003
Mensajes: 109
Antigüedad: 14 años, 2 meses
Puntos: 1
Dominios tk, dirección existe.

Estoy haciendo un pequeño programa para que los usuarios sugieran webs, comprobando que la página indicada existe realmente.

Funciona con las direcciones que he probado salvo con los dominios tk. Ya que la información que da el servidor es la misma exista o no el dominio.

The URL has moved here

"here" es un link a http://www.dot.tk/error.html.

Si accedes por medio del navegador y escribes un nombre de dominio www.quenoexiste.tk el servidor te lleva a una página para que lo des de alta. Si ya está dado de alta crea un conjunto de frames de este tipo:

<frameset onLoad="JavaScript:popup()" rows="*,1" framespacing="0" border="0" frameborder="NO">
<frame src="http://www.quesiexiste.com/index.html" name="dot_tk_frame_content" scrolling="auto" noresize>
</frameset>

Supongo que el servidor está configurado con una condición para que haga una cosa u otra. Lo que ya no sé si con php se puede acceder a esa información.

Gracias por vuestra ayuda.
  #2 (permalink)  
Antiguo 24/10/2003, 07:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Eso te va a suceder con todos los dominios que no apunten directamente sus DNS al servicio de hosting .. Ese .tk en tu caso es un redirecionamiento .. el "dominio" como tal siempre existe .. pues es parte del trabajo que hacen ellos de redirecionar (insertando el código que mencionas) .. pero, a donde redireccione y si está funcionando ese otro servidor .. Directamente usando sockets (como supongo que lo estás haciendo) .. sucederá lo que mencionas ..

Sería complicado (usando expresiones regulares) .. pero, podrías hacer algo tipo: "Si el domino es .tk ".. y sabes que ese es el código que usan para redireccionar (en la definición del frameset tienes el URL al que redirecciona realmente) ..podrías tomar ese URL para hacerle el real "socket" y ver si existe realmente ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 24/10/2003, 08:03
 
Fecha de Ingreso: octubre-2003
Mensajes: 109
Antigüedad: 14 años, 2 meses
Puntos: 1
Eso mismo había pensado.

Pero no sé como acceder al código fuente <html><frameset>etc. si no es a través del navegador.

¿Hay algún código para preguntar por esa página que no sea

HEAD $urlArray[path] HTTP/1.1 // Da como resultado un mensaje de error del servidor (bad request...)

ni

GET $urlArray[path] HTTP/1.1 //da como resultado el que ya comentaba antes

Gracias
  #4 (permalink)  
Antiguo 24/10/2003, 08:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Exactamente que codigo usas? ¿Y que es lo que dices que te sale con el GET? Es que he hecho una primera prueba con:
Código PHP:
<?php
$fp 
fsockopen ("www.picore.tk"80$errno$errstr30);
if (!
$fp) {
   echo 
"$errstr ($errno)<br>\n";
} else {
   
fputs ($fp"GET / HTTP/1.1\r\nHost: www.picore.tk\r\n\r\n");
   while (!
feof($fp)) {
       echo 
fgets ($fp,128);
   }
   
fclose ($fp);
}
?>
y me sale bien, me recupera las cabeceras y el contenido (el html del frameset).

Si usas variables para el host y la ruta, asegurate que toman los valores correctos.

Saludos.

[Editado] ¿Por que hace la sustitucion de URL automatica DENTRO de los tags [ PHP ] [/ PHP ]? [/Editado]
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 24/10/2003 a las 08:29
  #5 (permalink)  
Antiguo 24/10/2003, 08:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Para acceder al código fuente (HTML/etc generado) puedes abrir la página vía fopen() y funciones afines .. volcar el contenido a una variable y de ahí filtrarla para buscar tu sécción del código que te interesa (ideal que fuera con expresiones regulares).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 24/10/2003, 08:52
 
Fecha de Ingreso: octubre-2003
Mensajes: 109
Antigüedad: 14 años, 2 meses
Puntos: 1
respondo a Josemi

Esto es lo que me escribe a mi poniendo tu código, sin más adornos.

HTTP/1.1 200 OK Date: Fri, 24 Oct 2003 15:13:11 GMT Server: Resin/2.1.6 Cache-Control: private X-Server: tetufa.taloha.tk Set-Cookie: JSESSIONID=aveAY27SwZ16; Path=/ Content-Type: text/html; charset=ISO-8859-1 Content-Length: 768


????
  #7 (permalink)  
Antiguo 24/10/2003, 08:54
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 8 meses
Puntos: 1
Pues con el codigo de josemi que te da la cabecera y este codigo que te da los datos de la pagina tk tienes mas o menos toda loa informacion que necesitas para ver las cabeceras y la pagina que corresponde la url tk

Código PHP:
$texto=implode(" ",file("http://www.picore.tk"));

    
eregi("<frame[^>]*src[[:blank:]]*=['\"]((([[a-z]{3,5}://)+(([.a-zA-Z0-9-])+(:[0-9]+)*))*([/?=&;\\,._a-zA-Z0-9\|+-]*))(#[.a-zA-Z0-9-]*)?[\'\" ]?",$texto,$tags);
    if(!
$tags[0]) echo "no responde"
    echo 
"<pre>",
    
print_r($tags);
    echo 
"</pre>"
prueba a ver si te sirve

un saludo
  #8 (permalink)  
Antiguo 24/10/2003, 08:59
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Ah, ezetra, eso es porque te dejas guiar por los ojos de la cara. Pero si usas tu ojo mental veras que dando a "Ver codigo fuente" en tu navegador, todo el codigo HTML viene detras. Lo que pasa es que con las cabeceras, el contenido HTML esta fuera de lugar y tu navegador es incapaz de mostrarlo.

Abre tu mente. No te fies de tus ojos. Siempre comprueba el HTML generado viendo "Ver codigo fuente" en tu navegador. Se como el agua.

Saludos, pequeño saltamontes.

PD: ¿Os parece que los viernes cerca de la hora de finalizar el trabajo, se me va la hoya un "poquito"?
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 24/10/2003, 09:00
 
Fecha de Ingreso: octubre-2003
Mensajes: 109
Antigüedad: 14 años, 2 meses
Puntos: 1
con el de josemi me vale

Eso es lo que me devolvía cuando existe el dominio y esto cuando no existe. por ej. www.sfdsfsdfds.tk

HTTP/1.1 302 Found Server: Resin/2.1.6 Location: http://my.dot.tk/cgi-bin/bn01a.taloh...inname=KKDSFDS Content-Length: 97 Connection: close Date: Fri, 24 Oct 2003 13:17:16 GMT The URL has moved here


El problema era el orden yo ponía, que vale para todos los dominios que había probado menos los tk:

$request .= "GET $urlArray[path] HTTP/1.1\r\n";

cuando el orden bueno es este (modifica tú también Jordi1)

$request .= "GET / HTTP/1.1\r\nHost: $urlArray[path]\r\n\r\n";

Gracias por vuestra ayuda majos
  #10 (permalink)  
Antiguo 24/10/2003, 12:09
 
Fecha de Ingreso: octubre-2003
Mensajes: 109
Antigüedad: 14 años, 2 meses
Puntos: 1
Vuelvo a la carga

Me he equivocao

Resulta que el problema no era ese, el problema es que no recibe la petición bien si le pasamos el nombre del dominio como variable, sí si lo escribimos directamente.

Esto no
$request .= "GET / HTTP/1.1\r\nHost: $urlArray[path]\r\n\r\n";

esto no
$request .= "GET / HTTP/1.1\r\nHost: $variable\r\n\r\n";

esto tampoco
$request .= "GET / HTTP/1.1\r\nHost:". $urlArray[path]."\r\n\r\n";

....

Entonces cómo me lo monto si el valor lo recibo de un formulario?

Después de esto prometo no dar más la paliza .... con en este tema claro
  #11 (permalink)  
Antiguo 24/10/2003, 12:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y te has hecho ya un "echo" a esa variable $request a ver si las variables que usan toman el valor esperado?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 24/10/2003, 12:35
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 8 meses
Puntos: 1
el problema que tienes es que aqui le pasas el path, y en este caso no tienes , debes pasarle el host
ahora:
$request .= "GET / HTTP/1.1\r\nHost:". $urlArray[path]."\r\n\r\n";

Deberias:
$request .= "GET / HTTP/1.1\r\nHost:". $urlArray[host]."\r\n\r\n";

prueba a ver

un saludo
  #13 (permalink)  
Antiguo 24/10/2003, 12:59
 
Fecha de Ingreso: octubre-2003
Mensajes: 109
Antigüedad: 14 años, 2 meses
Puntos: 1
po zi

Así es amiguito.



Solucionao, carpetazo y a otra cosa mariposa.
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 11:21.