Tema: detectar ip
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/03/2003, 08:04
Avatar de richinpr
richinpr
 
Fecha de Ingreso: diciembre-2002
Ubicación: Arecibo -- Puerto Rico
Mensajes: 153
Antigüedad: 21 años, 4 meses
Puntos: 1
Hola dimmi Si entendi bien y lo que quieres es un codigo que te muestre los ip de los usuarios que estan visitando en el momento tu pagina(algo asi como aqui en el foro con los nicks) pues te dejo este codigo este codigo te muestra el IP, Host, Puerto, La pagina en que esta la persona, Agente y el website o pagina de donde viene Aqui esta el codigo, espero te funcione y si tienes alguna duda te dejo la web del autor de este codigo http://rohs.nl/php.php y como dicen algunos compañeros del foro Nos cuentas como te fue

Este se llama online.php

Código PHP:
<?php 
    
include("addonline.php"); // put this line on top of each page 
     
    
$query = ("SELECT agent, host, ip, port, referer, site FROM online ORDER BY host ASC;"); 
    
$result mysql_query($query) or die("MySQL Error: " mysql_error()); 

    while (
$row mysql_fetch_array($result)) { 
        
$row["agent"] = htmlentities($row["agent"], ENT_QUOTES); 
        
$row["referer"] = htmlentities($row["referer"], ENT_QUOTES); 
        print(
"<a href=\"http://" $row["ip"] . "/\">" $row["ip"] . "</a> <a href=\"http://" $row["host"] . "/\">" $row["host"] . "</a> " $row["port"] . " <a href=\"" $row["site"] . "\">" $row["site"] . "</a> " $row["agent"] . " <a href=\"" $row["referer"] . "\">" $row["referer"] . "</a><br />\n"); 
    } 
     
    
mysql_close($link); 
?>
Necesitas tambien subir este que se llama addonline.php

Código PHP:
<?php 
    
include("webvars.php"); 

    
$link mysql_connect($hostname$user$password); 
    
mysql_select_db($database); 

    
$query = ("CREATE TABLE IF NOT EXISTS online ( 
        id int(11) NOT NULL auto_increment, 
        agent varchar(255) default NULL, 
        host varchar(255) default NULL, 
        ip varchar(15) NOT NULL default '', 
        port int(11) default NULL, 
        referer varchar(255) default NULL, 
        site varchar(255) default NULL, 
        time varchar(255) NOT NULL default '', 
        PRIMARY KEY  (id) 
    ) TYPE=MyISAM;"
); 

    
mysql_query($query) or die("MySQL Error: " mysql_error()); 

    
$agent $_SERVER["HTTP_USER_AGENT"]; 
    
$host gethostbyaddr($_SERVER["REMOTE_ADDR"]); 
    
$ip $_SERVER["REMOTE_ADDR"]; 
    
$port $_SERVER["REMOTE_PORT"]; 
    
$referer $_SERVER["HTTP_REFERER"]; 
    
$site $_SERVER["REQUEST_URI"]; 
    list(
$utime$time) = explode(" "microtime()); 

    
$query = ("SELECT * FROM online WHERE ip = '$ip';"); 
    
$result mysql_query($query) or die("MySQL Error: " mysql_error()); 

    if (!
mysql_num_rows($result)) { 
        
$query = ("INSERT INTO online (id, agent, host, ip, port, referer, site, time) VALUES(NULL, '$agent', '$host', '$ip', '$port', '$referer', '$site', '$time');"); 
        
mysql_query($query) or die("MySQL Error: " mysql_error()); 
    } 

    
$query = ("DELETE FROM online WHERE time < ($time - 900);"); 
    
mysql_query($query) or die("MySQL Error: " mysql_error()); 

    
$query = ("UPDATE online SET agent = '$agent', host = '$host', port = '$port', referer = '$referer', site = '$site' WHERE ip = '$ip';"); 
    
mysql_query($query) or die("MySQL Error: " mysql_error()); 
?>

Tambien necesitas subir este que se llama webvars.php

Código PHP:
<?php 
    $hostname 
"localhost"// tu direccion del server MySQL 
    
$user "root"// tu MySQL username 
    
$password "password"// tu MySQL password 
    
$database "database"// tu MySQL database 
?>
Un ejemplo de este script puede verse en http://rohs.nl/online.php

Última edición por richinpr; 30/03/2003 a las 06:06