Verificar com php se o site está online (no ar)
Vi dois caras no fórum perguntando sobre isso, então resolvi fazer um post.
Um simples código com a lib cURL do php, para verificar se um site está ou não no ar.
<?php function curl_info($url){ $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, $url ); curl_setopt( $ch, CURLOPT_HEADER, 1); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout ); curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 ); $content = curl_exec( $ch ); $info = curl_getinfo( $ch ); return $info; } $site = 'http://www.locaweb.com.br'; $info = curl_info( $site ); if( $info['http_code']==200 ) { echo '<u>'.$site . '</u> - <strong>está no ar!!</strong><br />'; } else { echo '<u>'.$site . '</u> - está fora do ar<br />'; } $site = 'http://www.locaweba.com.br'; $info = curl_info( $site ); if( $info['http_code']==200 ) { echo '<u>'.$site . '</u> - <strong>está no ar!!</strong><br />'; } else { echo '<u>'.$site . '</u> - está fora do ar<br />'; }
Capturo os cabeçalhos da requisição e verifico se o http_status é igual a 200.
Caso seja, significa que o site está sim no ar.
Note que deixei a entrada:
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 );
para caso o site possua algum redirecionamento, como é o caso da locaweb, que redireciona a home para o /default.html
É isso galera, comentem caso usem. =)