Queria um sistema que mostrasse numa página todos os usuários online e offline de um provedor de internet a cabo. Iria mostrar por ip, todos os ips são fixos. Sairia tipow:
Nome do usuário - Status
Zé - Online
Mané - Offline
custodia.com.br - é mais fácil encontrar aqui!!!
Eu queria tipow mostrar todos numa página só, mas não tô conseguindo, só consigo mostrar um usuário por página e assim mesmo quando tá offline dá erro.
ping.php
<?
include "http.class";
$http = new http;
$fp = $http->http_fopen($ping,"/");
if (!$fp)
{
print "Usuário offline!";
exit;
}
ob_start();
header("Location: [url="http://localhost/ping/pingou.php");"]http://localhost/ping/pingou.php");[/url]
ob_end_flush();
fpassthru($fp);
?>
http.class
<?
class http
{
var $proxy_host = "";
var $proxy_port = "";
function http_fopen($host, $path, $port = 80)
{
if (empty($this->proxy_host))
{
$conn_host = $host;
$conn_port = $port;
}
else
{
$conn_host = $this->proxy_host;
$conn_port = $this->proxy_port;
}
$abs_url = "http://$host:$port$path";
$query = " GET $abs_url HTTP/1.0 \r\n ".
" Host: $host:$port\r\n ".
" User-agent: PHP/class http 0.1\r\n".
"\r\n";
$fp = fsockopen($conn_host, $conn_port);
if(!$fp)
return false;
fputs($fp, $query);
while (trim(fgets($fp, 1024)) != "");
return $fp;
}
}
?>
Achei o script abaixo aqui na net, que mostra servidores online, ele mostra quantos a pessoa quiser em uma página só, mas não pinga por ip, e também quando tá offline dá erro.
<?php
/*
// HTTP Check
//
//
// Author: Pablo Costa
// Lastmod: 2000-12-06
// Homepage: http://shark.ib.usp.br
//
// PHP:
// <?
// include("http-check.php");
// ?>
Script para verificar se servidores web estao online,
a partir de uma lista fornecida.
No exemplo utilizei o site de operadoras de pager
eu utilizo este script no endereco:
http://shark.ib.usp.br/pager
*/
$data = date( "H:i (d/m/Y)", time() );
$fonte = "<font face=\"Verdana,Arial,Helvetica\" size=\"2\">";
$link_prefix_on = "ONLINE";
$link_prefix_off = "OFFLINE";
$link_postfix = "<BR>\n";
$cache_file = "pager.net.cache"; // Cache do arquivo
$cache_time = 1800; // Intervalo de renovacao fixado em 30 minutos
$target = "_top";
$time = split(" ", microtime());
$cache_time_rnd = 300 - rand(0, 600);
/*
Colocar o array de servidores aqui
Seguindo o esquema:
"Nome do site" => "url do site"
*/
$SERVER = array(
"Servidor1" => "www.site1.com.br",
"Servidor2" => "www.site2.com.br",
"Servidor3" => "www.site3.com.br"
);
srand((double)microtime()*1000000);
if ( (!(file_exists($cache_file))) || ((filectime($cache_file) + $cache_time - $time[1]) + $cache_time_rnd < 0) || (!(filesize($cache_file))) ) {
$fpwrite = fopen($cache_file, 'w');
fputs($fpwrite, "<table width=\"50%\" align=center>\n");
fputs($fpwrite, "<caption>\n");
fputs($fpwrite, "$fonte<B>Horario</B>: $data</font>\n");
fputs($fpwrite, "</caption>\n");
fputs($fpwrite, "<th align=left>$fonte Status</th></font>\n");
fputs($fpwrite, "<th align=left>$fonte Servidor</th></font>\n");
if(!$fpwrite) {
echo "$errstr ($errno)<br>\n";
exit;
}
else {
while(list($KEY,$VALUE) = each($SERVER)) {
$LOGERRORS = 1;
$httpserver = fsockopen( "$VALUE", 80, &$errno, &$errstr);
// Abre a conexao com servidor http
if(!$httpserver) {
// Se a conexao nao falhar
if (isset($LOGERRORS)) {
// Se houver qualquer erro declara offline
fputs($fpwrite, "<tr>\n");
fputs($fpwrite, "<td>$link_prefix_off</td>\n");
fputs($fpwrite, "<td><A HREF=\"http://$VALUE\" TARGET=\"$target\">$KEY</A></td>\n");
fputs($fpwrite, "</tr>\n");
}
}
else {
// Sucesso na conexao, verificar servidor web
set_socket_blocking($httpserver,-1);
fwrite($httpserver, "get index.html\r\n");
$banner = fgets($httpserver,128);
fclose($httpserver);
sleep(1);
$file = fopen( "http://$VALUE/", "r");
if (!$file) {
fputs($fpwrite, "<tr>\n");
fputs($fpwrite, "<td>$link_prefix_off</td>\n");
fputs($fpwrite, "<td><A HREF=\"http://$VALUE\" TARGET=\"$target\">$KEY</A></td>\n");
fputs($fpwrite, "</tr>");
exit;
}
fclose($file);
fputs($fpwrite, "<tr>\n");
fputs($fpwrite, "<td>$link_prefix_on</td>\n");
fputs($fpwrite, "<td><A HREF=\"http://$VALUE\" TARGET=\"$target\">$KEY</A></td>\n");
fputs($fpwrite, "</tr>\n");
}
}
}
fputs($fpwrite, "</table>\n");
fclose($fpwrite);
}
if (file_exists($cache_file)) {
include($cache_file);
}
?>
Eu queria que alguém me desse uma luz. (puxa como ficou grande esse post!)
Edição feita por: Online, 28/07/2009, 18:24.