Foros del Web » Programando para Internet » PHP »

IP por países...

Estas en el tema de IP por países... en el foro de PHP en Foros del Web. hola, me gustaría saber cómo le hacen los sitemas estadísticos de los hostings, el avstats por ejemplo, para saber de qué país son los visitantes ...
  #1 (permalink)  
Antiguo 26/09/2005, 12:36
 
Fecha de Ingreso: agosto-2004
Mensajes: 195
Antigüedad: 13 años, 3 meses
Puntos: 0
IP por países...

hola, me gustaría saber cómo le hacen los sitemas estadísticos de los hostings, el avstats por ejemplo, para saber de qué país son los visitantes que entran al sitio... ???....

hay alguna tabla donde aparezca el rango de IPs destinado a cada país... ??,,, en específico yo llevo el control de los visitantes de mi sitio, y quiero saber cuándo es un visitante desde Cuba... ????....

gracias por adelantado

saludos
leo
__________________
http://www.qbanitas.com - Las chicas más lindas de Cuba.

http://www.santaclarahostel.com - casas particulares en Santa Clara, la ciudad del Che.
  #2 (permalink)  
Antiguo 26/09/2005, 18:00
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 12 años, 6 meses
Puntos: 7
La verdad es que no tengo ni idea ,pero en la siguiente direccion te explican como hacerlo www.desarrolloweb.com/articulos/2168.php
Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #3 (permalink)  
Antiguo 27/09/2005, 07:00
 
Fecha de Ingreso: agosto-2005
Mensajes: 28
Antigüedad: 12 años, 3 meses
Puntos: 0
Exclamación

Hola qbanos.com , te propongo otro metodo, no tan exacto en casos concretos, pero que te funcionará, el defecto que tiene este sistema, es el declarar todos los idiomas que quieras mostrar. Te recomiendo usar la función de php HTTP_ACCEPT_LANGUAGE , que lo que hace es obtener el idioma del navegador del usuario y devolverlo en una varible que tu le indiques. Encontrarás más información sobre esta función en los FAQ'S de PHP.

A continuación te expongo, un pequeño código PHP para hacer lo q pides:

NOTA: Aqui he expuesta la manera q usaria para obtener cada visitante, espero q aunque no lo hagas igual que yo, comprendas la idea de lo q hay q hacer


//INICIO DEL ARCHIVO CONTADOR.PHP

<?

$pais = $HTTP_ACCEPT_LANGUAGE; // OBTENEMOS EL IDIOMA DE NAVEGADOR Q ESTA USANDO
$IP = $REMOTE_ADDR; // OBTENEMOS LA IP DEL VISITANTE

include("conexion.inc.php"); // CONECTAMOS CON LA BASE DE DATOS

$contador = mysql_query("SELECT `ip`, FROM `contador` WHERE ip='$ip'"); //HACEMOS LA CONSULTA PARA SABER SI ES EL MISMO VISITANTE

if(mysql_num_rows($contador) == 1) // AQUI PREGUNTAMOS SI EL VISITANTE YA VISITO LA PAGINA, DEVOLVIENDONOS 1 = TRUE , 0 = FALSE
{
echo "";//INDICAMOS Q NO HAGA NADA SI YA VISITO LA PAGINA
}
else
{
mysql_query("INSERT INTO `contador` ( `ip` , `pais` ) VALUES ('$ip', '$pais')");//AQUI SI NO LA VISITO, SE REGISTRA LA IP Y EL LENGUAJE DEL USUARIO
}

//FIN DEL ARCHIVO CONTADOR.PHP




//INICIO DEL ARCHIVO VISITAS.PHP


<?
//declaramos las variable para las condiciones a buscar en la base de datos, o sea, que paises a buscar
$pais_1 = "fr";
$pais_2 = "es";
$pais_3 = "it";

//declaramos la consulta con las condiciones
$francia = mysql_query("SELECT `pais` FROM `contador` WHERE pais='$pais_1'");
$espana = mysql_query("SELECT `pais` FROM `contador` WHERE pais='$pais_2'");
$italia = mysql_query("SELECT `pais` FROM `contador` WHERE pais='$pais_3'");

//le damos a las variables los resultados de las consultas
$fr = mysql_num_rows($francia);
$es = mysql_num_rows($espana);
$it = mysql_num_rows($italia);

echo "Visitantes franceses $fr";
echo "Visitantes españoles $es";
echo "Visitantes italianos $it";

?>

//FIN DEL ARCHIVO VISITAS.PHP


Espero haberte ayudado algo, si tienes dudas o cualquier cosa, escribeme, [email protected]

Espero q te funcione!!!
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:56.