Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (php) [Seleccionar]

function ping3 ($ping)
{
$comm = "ping -c3 ".$ping;
$output=shell_exec($comm);
echo $output;
}

ping3 ("www.dominio.com");
?>


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
Cita de: дٳŦ٭ 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

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?


Cita de: luiggy2 en  8 Enero 2010, 17:02 PM
Código (php) [Seleccionar]

function ping3 ($ping)
{
$comm = "ping -c3 ".$ping;
$output=shell_exec($comm);
echo $output;
}

ping3 ("www.dominio.com");
?>


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

Cita de: 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.

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 (php) [Seleccionar]
function get_web_page( $url )
{
$options = array(
CURLOPT_RETURNTRANSFER => true,     // return web page
CURLOPT_HEADER         => false,    // don't return headers
CURLOPT_FOLLOWLOCATION => true,     // follow redirects
CURLOPT_ENCODING       => "",       // handle compressed
CURLOPT_USERAGENT      => "spider", // who am i
CURLOPT_AUTOREFERER    => true,     // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
CURLOPT_TIMEOUT        => 120,      // timeout on response
CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
);

$ch      = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err     = curl_errno( $ch );
$errmsg  = curl_error( $ch );
$header  = curl_getinfo( $ch );
curl_close( $ch );

$header['errno']   = $err;
$header['errmsg']  = $errmsg;
$header['content'] = $content;
return $header;
}



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



Código (php) [Seleccionar]

<?php

// Function to check response time
function pingDomain($domain){
    
$starttime microtime(true);
    
$file      fsockopen ($domain80$errno$errstr10);
    
$stoptime  microtime(true);
    
$status    0;

    if (!
$file$status = -1;  // Site is down
    
else {
        
fclose($file);
        
$status = ($stoptime $starttime) * 1000;
        
$status floor($status);
    }
    return 
$status;
}
?>


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:
;extension=php_curl.dll
Tienes que quitarle el punto y coma.
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 (php) [Seleccionar]
<?php
/* Tiempo límite de espera entre la conexión de 10 segundos */
$timeout stream_context_create(array('http' => array('timeout' => 10))); 
/* Verifica si la url existe */
if(@file_get_contents('http://imageshack.us/noexisto'0$timeout){
 echo 
'existe';
}else{
 echo 
'no existe'
}
?>


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
Cita de: WHK en  9 Enero 2010, 20:26 PM
Hazte la vida mas fácil

Código (php) [Seleccionar]
<?php
/* Tiempo límite de espera entre la conexión de 10 segundos */
$timeout stream_context_create(array('http' => array('timeout' => 10))); 
/* Verifica si la url existe */
if(@file_get_contents('http://imageshack.us/noexisto'0$timeout){
 echo 
'existe';
}else{
 echo 
'no existe'
}
?>


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