Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: jdc en 8 Enero 2010, 16:47 pm



Título: Como saber sí una página está disponible o es real?
Publicado por: jdc en 8 Enero 2010, 16:47 pm
Hay alguna forma en php de ver sí una página está enlínea o es real por medio de un ping o similar?
 
Osea necesito saber sí www.elhacker.net está disponible, como sería?


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: luiggy2 en 8 Enero 2010, 17:02 pm
Código
  1. function ping3 ($ping)
  2. {
  3. $comm = "ping -c3 ".$ping;
  4. $output=shell_exec($comm);
  5. echo $output;
  6. }
  7.  
  8. ping3 ("www.dominio.com");
  9. ?>

Fuente: http://www.nociondigital.com/webmasters/php-tutorial-haciendo-ping-desde-php-detalle-208.html

Lo malo es que no todos los servidores te van a dfejar usarlo.


Saludos!


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: el-brujo en 8 Enero 2010, 17:05 pm
pues te conectas a esa web y si el servidor web devuelve un code 200 (response code) es que está todo correcto.


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: дٳŦ٭ en 8 Enero 2010, 18:58 pm
Pues una cosa es que sea real y otra que exista.. dependiendo el requerimiento es la solución, si necesitas ver si está online u off abriendo un socket y ver el header te das cuenta, si necesitas ver si está disponible para registro, te toca hacerle un whois.

Saludos


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: jdc en 8 Enero 2010, 19:06 pm
Pues una cosa es que sea real y otra que exista.. dependiendo el requerimiento es la solución, si necesitas ver si está online u off abriendo un socket y ver el header te das cuenta, si necesitas ver si está disponible para registro, te toca hacerle un whois.

Saludos

nop, no quiero ver nada para registro ni mucho menos, necesito saber si una direccion ingresada es valida por ejemplo smf toma como direccion tanto www.google.com como www.paginaquenuncaensuvidaaexistido.com ambos son links pero no son valido los 2 no? como puedo saber si un link es valido o no?


Código
  1. function ping3 ($ping)
  2. {
  3. $comm = "ping -c3 ".$ping;
  4. $output=shell_exec($comm);
  5. echo $output;
  6. }
  7.  
  8. ping3 ("www.dominio.com");
  9. ?>

Fuente: http://www.nociondigital.com/webmasters/php-tutorial-haciendo-ping-desde-php-detalle-208.html

Lo malo es que no todos los servidores te van a dfejar usarlo.


Saludos!

Necesitaria algo que sea mas generico, osea que no dependa de que alguno o que otro servidor lo acepte :) pero gracias, esta interesante aunque en wamp no funciona xD

pues te conectas a esa web y si el servidor web devuelve un code 200 (response code) es que está todo correcto.

Y como seria eso mas o menos en php?


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: el-brujo en 8 Enero 2010, 19:22 pm
Cita de: el-pollo link=topic=280520.msg1381666#msg1381666

[quote author=el-brujo link=topic=280520.msg1381561#msg1381561 date=1262966701
pues te conectas a esa web y si el servidor web devuelve un code 200 (response code) es que está todo correcto.

Y como seria eso mas o menos en php?
[/quote]

Con cURL


Código
  1. function get_web_page( $url )
  2. {
  3. $options = array(
  4. CURLOPT_RETURNTRANSFER => true,     // return web page
  5. CURLOPT_HEADER         => false,    // don't return headers
  6. CURLOPT_FOLLOWLOCATION => true,     // follow redirects
  7. CURLOPT_ENCODING       => "",       // handle compressed
  8. CURLOPT_USERAGENT      => "spider", // who am i
  9. CURLOPT_AUTOREFERER    => true,     // set referer on redirect
  10. CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
  11. CURLOPT_TIMEOUT        => 120,      // timeout on response
  12. CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
  13. );
  14.  
  15. $ch      = curl_init( $url );
  16. curl_setopt_array( $ch, $options );
  17. $content = curl_exec( $ch );
  18. $err     = curl_errno( $ch );
  19. $errmsg  = curl_error( $ch );
  20. $header  = curl_getinfo( $ch );
  21. curl_close( $ch );
  22.  
  23. $header['errno']   = $err;
  24. $header['errmsg']  = $errmsg;
  25. $header['content'] = $content;
  26. return $header;
  27. }


http://nadeausoftware.com/articles/2007/06/php_tip_how_get_web_page_using_curl



Código
  1. <?php
  2.  
  3. // Function to check response time
  4. function pingDomain($domain){
  5.    $starttime = microtime(true);
  6.    $file      = fsockopen ($domain, 80, $errno, $errstr, 10);
  7.    $stoptime  = microtime(true);
  8.    $status    = 0;
  9.  
  10.    if (!$file) $status = -1;  // Site is down
  11.    else {
  12.        fclose($file);
  13.        $status = ($stoptime - $starttime) * 1000;
  14.        $status = floor($status);
  15.    }
  16.    return $status;
  17. }
  18. ?>

Más:


Check website status using php and CURL library
http://php.assistprogramming.com/check-website-status-using-php-and-curl-library.html

Busca por "check website status php" y encontrarás más cosa.


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: jdc en 9 Enero 2010, 02:20 am
Perdon por la ignorancia pero mi nivel de php es muy basico. Como funcionan las funciones que posteaste brujo? las probe ambas en wamp y no me funciono ninguna de las 2,

Un saludo y gracias


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: AlbertoBSD en 9 Enero 2010, 04:57 am
Ocupas tener CURL instalado y tal vez una extensión para que el PHP pueda usarlo xD...

XAMP es de windows no??

Saludos


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: ~ Yoya ~ en 9 Enero 2010, 05:34 am
Ps si usas xampp para window o lampp para linux tienes que activarlo editanto el php.ini, por defecto viene off.


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: jdc en 9 Enero 2010, 05:37 am
Uso wamp... Que se agrega o edita en php.ini? No se puede activar desde .htaccess?


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: AlbertoBSD en 9 Enero 2010, 05:43 am
La verdad yo no lo he hecho pero:

http://es.wikipedia.org/wiki/CURL

http://php.net/manual/en/book.curl.php

Saludos



Título: Re: Como saber sí una página está disponible o es real?
Publicado por: ~ Yoya ~ en 9 Enero 2010, 16:06 pm
Tienes que mirar el php.ini y en hay linea aparece esto:
Código:
;extension=php_curl.dll
Tienes que quitarle el punto y coma.
Código:
extension=php_curl.dll


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: jdc en 9 Enero 2010, 17:09 pm
ok gracias, buscare mas a ver si puedo adaptar otra cosa :)

Saludos


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: WHK en 9 Enero 2010, 20:26 pm
Hazte la vida mas fácil

Código
  1. <?php
  2. /* Tiempo límite de espera entre la conexión de 10 segundos */
  3. $timeout = stream_context_create(array('http' => array('timeout' => 10)));
  4. /* Verifica si la url existe */
  5. if(@file_get_contents('http://imageshack.us/noexisto', 0, $timeout){
  6. echo 'existe';
  7. }else{
  8. echo 'no existe'
  9. }
  10. ?>

Por defecto la función file_get_contents debuelve un estado de error cuando la respuesta del host no es 200.


Título: Re: Como saber sí una página está disponible o es real?
Publicado por: jdc en 9 Enero 2010, 21:11 pm
Hazte la vida mas fácil

Código
  1. <?php
  2. /* Tiempo límite de espera entre la conexión de 10 segundos */
  3. $timeout = stream_context_create(array('http' => array('timeout' => 10)));
  4. /* Verifica si la url existe */
  5. if(@file_get_contents('http://imageshack.us/noexisto', 0, $timeout){
  6. echo 'existe';
  7. }else{
  8. echo 'no existe'
  9. }
  10. ?>

Por defecto la función file_get_contents debuelve un estado de error cuando la respuesta del host no es 200.

Gracias es exactamente lo que necesitaba! xD ahora solo debo entender tu funcion dese_hasta y listo xDDDD

Saludos