Foros del Web » Programando para Internet » PHP »

detectar ip

Estas en el tema de detectar ip en el foro de PHP en Foros del Web. Hola que tal a todos, en realidad podria ser algo descabellado lo que voy a preguntar pero solo asi sabre si se puede hacer... Quisiera ...
  #1 (permalink)  
Antiguo 06/03/2003, 17:39
 
Fecha de Ingreso: marzo-2002
Mensajes: 96
Antigüedad: 22 años
Puntos: 0
detectar ip

Hola que tal a todos, en realidad podria ser algo descabellado lo que voy a preguntar pero solo asi sabre si se puede hacer...

Quisiera saber si hay alguna manera de desarrollar un script que me desplagara las direcciones IP de las maquinas que esten visitando mi pagina en un momento determinado.


gracias y saludos.
  #2 (permalink)  
Antiguo 06/03/2003, 18:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Con PHP no .. con PHP como mucho le puedes pedir al servidor HTTP que le diga la IP del cliente que tiene conectado usando tal script.php ( ... $_SERVER['REMOTE_ADDR'] )

Pero de ahí a que haga una especie de "netstad" al "cliente" .. como q no es posible .. Y en tal caso sería con algo en javascript (que yo sepa ni con eso es posible) ..

Un saludo,
  #3 (permalink)  
Antiguo 07/03/2003, 02:30
 
Fecha de Ingreso: febrero-2002
Ubicación: ¿donde vivo? pues en mi casa, ¿donde voy a vivir?...
Mensajes: 214
Antigüedad: 22 años, 1 mes
Puntos: 0
Cluster, lamento contradecirte, pero si es posible lo q dice, q parece q tu no entendiste :).

lo q el kiere, es listar todas las ips conectadas a la página.

y eso es tan simple como logearlas y listarlas. si kieres q sea en un edterminado momento (las q esten en linea, por ejemplo), no es mas q hacerlo por rango de tiempos , como el mostrar los usuarios en linea.
__________________
Linux, es para los que odian Microsoft/Windows, BSD, es para los que amamos *IX.
  #4 (permalink)  
Antiguo 07/03/2003, 07:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
ok, me confundí ...

Pues la base es capturar la IP via: $_SERVER['REMOTE_ADDR']

Y hacer el proceso q mencina NebeBus ..

Un ejemplo .. En las FAQ's lo tienes:
http://www.forosdelweb.com/showthrea...244#post302244

(en el ejemplo usa para acceder a las variables de servidor $REMOTE_ADDR .. sería recomendable usar $_SERVER[] ....)

Un saludo,
  #5 (permalink)  
Antiguo 07/03/2003, 08:04
Avatar de richinpr  
Fecha de Ingreso: diciembre-2002
Ubicación: Arecibo -- Puerto Rico
Mensajes: 153
Antigüedad: 21 años, 3 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 08:18.