El proyecto va asi:
http://www.sistemasycontroles.net/ip/
Puedes descargar todos los archivos del proyecto aca:
graphixx_contador_de_visitas_php.zip (9.56 MB) (http://www.4shared.com/folder/Jnp1ZoKQ/ipproject.html)
EL paquete incluye:
(http://img716.imageshack.us/img716/6872/graphixxcontadorvisitas.png)
La base de datos con los rangos ip de todo el mundo la saque de:
http://ipinfodb.com/ip_database.php
(http://img249.imageshack.us/img249/2627/bdipmundo2.png)
(http://img29.imageshack.us/img29/5926/bdipmundo3.png)
(http://img209.imageshack.us/img209/8209/bdipmundo4.png)
Descargar la base de datos de ip mundiales de:
http://www.megaupload.com/?d=NJZHXD5S
Aqui tambien estan compiladas como usar todas las bd gratis que hay en un solo recurso:
http://bakery.cakephp.org/spa/articles/dereklio/2010/10/11/geoip_de_origen_de_datos_collection_-_maxmind_wipmania_ipinfodb_-_muchos_proveedores_geoip_para_usted_para_elegir
las banderas animadas estan en:
Espectaculares Banderas de todos los paises en GIF. (http://foro.elhacker.net/desarrollo_web/espectaculares_banderas_de_todos_los_paises_en_gif-t314240.0.html)
Por implementar:
La idea es implementar una tabla de estadisticas como esta:
http://live.feedjit.com/live/coltandecolombia.com/0/
Para implementarle tambien un globo 3d tipo revolver maps, gracias a que la base de datos entrega las coordenadas cartesianas, asi:
http://www.revolvermaps.com/?target=enlarge&i=yaZ8Wt55df&wid=1&nostars=true&color=ff0000&m=2&ref=http%3A%2F%2Fwww.sistemasycontroles.net%2F
El codigo hasta el momento va:
<?php
include "conexiondb.php";
$ip = $_SERVER['REMOTE_ADDR']; $separar = explode('.',$ip);
print("IP: $ip<br>");
echo "1er rango: ".$separar[0]."<br>";
echo "2do rango: ".$separar[1]."<br>";
echo "3do rango: ".$separar[2]."<br>";
echo "4to rango: ".$separar[3]."<br>";
list($a, $b, $c, $d) = $separar;
$ip2 = (($a*256+$b)*256+$c)*256 + $d;
echo "ip cifrada:".$ip2."<br>";
$connect=Conectarse();
$ssql = "SELECT * FROM `ip_group_city` where `ip_start` <= '$ip2' order by ip_start desc limit 1";
$consulta = mysql_query($ssql,$connect);
mysql_close($connect);
if( mysql_num_rows($consulta) == 1) {
$array = mysql_fetch_array($consulta);
$_country_code = $array["country_code"];
$_country_name = $array["country_name"];
$_region_code = $array["region_code"];
$_region_name = $array["region_name"];
$_city = $array["city"];
$_latitude = $array["latitude"];
$_longitude = $array["longitude"];
echo "Codigo del Pais:".$_country_code."<br>";
echo "Nombre del Pais:".$_country_name."<br>";
echo "Codigo de region:".$_region_code."<br>";
echo "Nombre de la Region:".$_region_name."<br>";
echo "ciudad:".$_city."<br>";
echo "latitud:".$_latitude."<br>";
echo "longitud:".$_longitude."<br>";
$lstring = strtolower($_country_code);
echo "<img src=banderas_iso3166/".$lstring.".GIF border=0><br>";
mysql_free_result($consulta);
//header( "Location: bienvenido.php" );
} else {
mysql_free_result($consulta);
//header( "Location: portada.php" );
}
$nav=$_SERVER['HTTP_USER_AGENT']; // guardo en la variable el Navegador
echo "navegador: "."$nav"."<br>"; // muestro la variable con el Navegador
?>
<?php
//preg_match().
if ((preg_match('/'."Nav".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Gold".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."X11".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Mozilla".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Netscape".'/', $_SERVER["HTTP_USER_AGENT"])) AND (!preg_match('/'."MSIE".'/', $_SERVER["HTTP_USER_AGENT"])) AND (!preg_match('/'."Chrome".'/', $_SERVER["HTTP_USER_AGENT"])) AND (!preg_match('/'."Konqueror".'/', $_SERVER["HTTP_USER_AGENT"])) AND (!preg_match('/'."Firefox".'/', $_SERVER["HTTP_USER_AGENT"]))) $browser = "Netscape";
elseif(preg_match('/'."Firefox".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "FireFox";
elseif(preg_match('/'."MSIE".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE";
elseif(preg_match('/'."Chrome".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Chrome";
elseif(preg_match('/'."Lynx".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx";
elseif(preg_match('/'."Opera".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera";
elseif(preg_match('/'."WebTV".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "WebTV";
elseif(preg_match('/'."Konqueror".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqueror";
elseif((preg_match('/'."bot".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Google".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Slurp".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Scooter".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Spider".'/', $_SERVER["HTTP_USER_AGENT"])) || (preg_match('/'."Infoseek".'/', $_SERVER["HTTP_USER_AGENT"]))) $browser = "Bot";
else $browser = "Other";
echo "EL navegador es: ".$browser;
?>
<center>
<?php
$url=$_SERVER['HTTP_REFERER'];
echo '<strong>'."viene de(ruta completa): ".'</strong>'.$_SERVER['HTTP_REFERER'].'<br />';
preg_match( '@^(?:http://)?([^/]+)@i', $_SERVER['HTTP_REFERER'], $matches );
$host = $matches[1];
echo '<strong>'."viene de(dominio): ".'</strong>'.$host;
?>
</center>
<center>
<?php
function get_search($referer)
{
preg_match("/q=(.*?)&/", $referer, $a);
$b = urldecode(str_replace("+"," ", $a[1]));
return $b;
}
if(stristr($_SERVER['HTTP_REFERER'],'google')){
print '<strong>la busqueda de:</strong> '.get_search($_SERVER['HTTP_REFERER']);
print ' <strong>te ha traido hasta este sitio.</strong>';
}
?>
</center>
<?PHP
// example of basic use
// set directory path to where the ip2countryphp.sql.php file is
// this MUST be a relative path and MUST include the end slash /
define("BASEDIR","./");
// set width of flag, height is proportional to width.
$flag_width = "30";
// include the class file
include(BASEDIR."ip2countryphp.sql.php");
/*
Below is a heredoc example of how you might display the users info,
of course you can include only the variables you want to, or you might
want to store the ip address, 2 letter country code(for flag image) and
country name in a database for using on a specific page.
*/
$gifflag = "banderas/".$country_name.".GIF";
print <<<TEST
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Visit Site Counter</title>
</head>
<body style="font:normal 9pt tahoma,arial,verdana">
<table style="margin-top:20px;border:#CCCCCC 1px solid" width="320" cellspacing="2" cellpadding="3" border="0" align="center">
<tr><td bgcolor="#CCCCCC" colspan="2"> <font color="white">Visit Site Counter</font></td></tr>
<tr><td width="200" height="26">Direccion IP:</td><td>$ip_address</td></tr>
<tr><td>Nombre del Pais:</td><td>$country_name</td></tr>
<tr><td>Codigo de 2 letras:</td><td>$two_letter_code</td></tr>
<tr><td>Codigo de 3 letras:</td><td>$three_letter_code</td></tr>
<tr><td>Bandera del Pais:</td><td><img src="$flag_img" width="$flag_width" border="0"></td></tr>
<tr><td>Bandera del Pais:</td><td><img src="$gifflag" border="0"></td></tr>
<tr><td bgcolor="#CCCCCC" colspan="2"><font color="white" size="1">www.eventosysistemas.com</font></td></tr>
</table>
</body>
</html>
TEST;
exit;
?>
Añadido al proyecto la libreria para dibujar en un mapa global las visitas:
GIS mapping in PHP: Part 1
Plotting a longitude / latitude coordinate on a raster map of the world using PHP and GD.
http://www.web-max.ca/PHP/article_1.php
GIS mapping in PHP: Part 2
Loading vector data in from a Mapinfo MIF file and displaying it in an image using PHP and GD.
http://www.web-max.ca/PHP/article_2.php
GIS mapping in PHP: Part 3
Retrieving user selected longitude and latitude coordinates from a raster map of the world.
http://www.web-max.ca/PHP/article_3.php
GIS mapping in PHP: Part 4
Stepping back in time, we show how to plot more than one point on a raster map of the world, loading data from a simple text file.
http://www.web-max.ca/PHP/article_4.php
(http://www.web-max.ca/maps/demo.php?long=-63.10774861954596&lat=46.2899306519141)
(http://www.web-max.ca/PHP/inc/article_4.jpg)
proyecto logrado gracias a:
http://en.wikipedia.org/wiki/Mercator_projection
Para tornar el mapa 3d usar:
http://www.uff.br/mapprojections/Mercator_en.html
Pido ayuda con esto:
COdigo del referer:
<?php
$url=$_SERVER['HTTP_REFERER'];
echo '<strong>'."viene de(ruta completa): ".'</strong>'.$_SERVER['HTTP_REFERER'].'<br />';
preg_match( '@^(?:http://)?([^/]+)@i', $_SERVER['HTTP_REFERER'], $matches );
$host = $matches[1];
echo '<strong>'."viene de(dominio): ".'</strong>'.$host;
?>
Alguien sabe como optener hacia que pagina parte el usuario?, el contrario de HTTP_REFERER....?