help_outline
Ayudanos!
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

"Super contador de Visitas en PHP"=300MB SQL+4 millones de registros+Scripts

  • 0 Respuestas
  • 1856 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado graphixx

  • *
  • Moderador
  • Mensajes: 1296
  • Actividad:
    10%
  • Reputación 18
  • Científico de BIG DATA
    • Ver Perfil
    • Sistemas y Controles
« en: Enero 03, 2013, 10:31:08 pm »
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)   

EL paquete incluye:




La base de datos con los rangos ip de todo el mundo la saque de:
http://ipinfodb.com/ip_database.php




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.

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:
Código: PHP
  1. <?php
  2. include "conexiondb.php";
  3.  
  4. $ip = $_SERVER['REMOTE_ADDR']; $separar = explode('.',$ip);
  5. print("IP: $ip<br>");
  6. echo "1er rango: ".$separar[0]."<br>";
  7. echo "2do rango: ".$separar[1]."<br>";
  8. echo "3do rango: ".$separar[2]."<br>";
  9. echo "4to rango: ".$separar[3]."<br>";
  10.  
  11. list($a, $b, $c, $d) = $separar;
  12.  
  13. $ip2 =  (($a*256+$b)*256+$c)*256 + $d;
  14. echo "ip cifrada:".$ip2."<br>";
  15.  
  16. $connect=Conectarse();
  17. $ssql = "SELECT * FROM `ip_group_city` where `ip_start` <= '$ip2' order by ip_start desc limit 1";
  18. $consulta = mysql_query($ssql,$connect);
  19. mysql_close($connect);
  20.  
  21. if( mysql_num_rows($consulta) == 1) {
  22.         $array = mysql_fetch_array($consulta);
  23.         $_country_code = $array["country_code"];
  24.         $_country_name = $array["country_name"];
  25.         $_region_code = $array["region_code"];
  26.         $_region_name = $array["region_name"];
  27.         $_city = $array["city"];
  28.         $_latitude = $array["latitude"];
  29.         $_longitude = $array["longitude"];
  30.        
  31.         echo "Codigo del Pais:".$_country_code."<br>";
  32.         echo "Nombre del Pais:".$_country_name."<br>";
  33.         echo "Codigo de region:".$_region_code."<br>";
  34.         echo "Nombre de la Region:".$_region_name."<br>";
  35.         echo "ciudad:".$_city."<br>";
  36.         echo "latitud:".$_latitude."<br>";
  37.         echo "longitud:".$_longitude."<br>";
  38.         $lstring = strtolower($_country_code);
  39.         echo "<img src=banderas_iso3166/".$lstring.".GIF border=0><br>";
  40.  
  41.         mysql_free_result($consulta);
  42.         //header( "Location: bienvenido.php" );
  43.         } else {
  44.         mysql_free_result($consulta);
  45.         //header( "Location: portada.php" );
  46. }
  47.  
  48. $nav=$_SERVER['HTTP_USER_AGENT']; // guardo en la variable el Navegador
  49. echo "navegador: "."$nav"."<br>"; // muestro la variable con el Navegador
  50. ?>
  51. <?php
  52. //preg_match().
  53. 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";
  54. elseif(preg_match('/'."Firefox".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "FireFox";
  55. elseif(preg_match('/'."MSIE".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE";
  56. elseif(preg_match('/'."Chrome".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Chrome";
  57. elseif(preg_match('/'."Lynx".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx";
  58. elseif(preg_match('/'."Opera".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera";
  59. elseif(preg_match('/'."WebTV".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "WebTV";
  60. elseif(preg_match('/'."Konqueror".'/', $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqueror";
  61. 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";
  62. else $browser = "Other";
  63. echo "EL navegador es: ".$browser;
  64. ?>
  65. <center>
  66. <?php
  67. $url=$_SERVER['HTTP_REFERER'];
  68. echo '<strong>'."viene de(ruta completa): ".'</strong>'.$_SERVER['HTTP_REFERER'].'<br />';
  69.  
  70. preg_match( '@^(?:http://)?([^/]+)@i', $_SERVER['HTTP_REFERER'], $matches );
  71. $host = $matches[1];
  72.  
  73. echo '<strong>'."viene de(dominio): ".'</strong>'.$host;
  74. ?>
  75. </center>
  76. <center>
  77. <?php
  78. function get_search($referer)
  79. {
  80.         preg_match("/q=(.*?)&/", $referer, $a);
  81.         $b = urldecode(str_replace("+"," ", $a[1]));
  82.         return $b;
  83. }
  84.  
  85.  
  86. if(stristr($_SERVER['HTTP_REFERER'],'google')){
  87.         print '<strong>la busqueda de:</strong> '.get_search($_SERVER['HTTP_REFERER']);
  88.         print ' <strong>te ha traido hasta este sitio.</strong>';
  89. }
  90. ?>
  91. </center>
  92. <?PHP
  93. // example of basic use
  94.  
  95. // set directory path to where the ip2countryphp.sql.php file is
  96. // this MUST be a relative path and MUST include the end slash /
  97. define("BASEDIR","./");
  98.  
  99. // set width of flag, height is proportional to width.
  100. $flag_width = "30";
  101.  
  102. // include the class file
  103. include(BASEDIR."ip2countryphp.sql.php");
  104.  
  105. /*
  106. Below is a heredoc example of how you might display the users info,
  107. of course you can include only the variables you want to, or you might
  108. want to store the ip address, 2 letter country code(for flag image) and
  109. country name in a database for using on a specific page.
  110. */
  111. $gifflag = "banderas/".$country_name.".GIF";
  112. print <<<TEST
  113. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  114. "http://www.w3.org/TR/html4/loose.dtd">
  115. <html>
  116. <head>
  117. <title>Visit Site Counter</title>
  118. </head>
  119. <body style="font:normal 9pt tahoma,arial,verdana">
  120. <table style="margin-top:20px;border:#CCCCCC 1px solid" width="320" cellspacing="2" cellpadding="3" border="0" align="center">
  121.   <tr><td bgcolor="#CCCCCC" colspan="2">&nbsp;<font color="white">Visit Site Counter</font></td></tr>
  122.   <tr><td width="200" height="26">Direccion IP:</td><td>$ip_address</td></tr>
  123.   <tr><td>Nombre del Pais:</td><td>$country_name</td></tr>
  124.   <tr><td>Codigo de 2 letras:</td><td>$two_letter_code</td></tr>
  125.   <tr><td>Codigo de 3 letras:</td><td>$three_letter_code</td></tr>
  126.   <tr><td>Bandera del Pais:</td><td><img src="$flag_img" width="$flag_width" border="0"></td></tr>
  127.   <tr><td>Bandera del Pais:</td><td><img src="$gifflag" border="0"></td></tr>
  128.   <tr><td bgcolor="#CCCCCC" colspan="2"><font color="white" size="1">www.eventosysistemas.com</font></td></tr>
  129. </table>
  130. </body>
  131. </html>
  132. TEST;
  133. ?>
  134.  

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




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:
Código: [Seleccionar]
<?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....?

 

¿Te gustó el post? COMPARTILO!



[Desarrollo] Pequeños scripts PHP a medida

Iniciado por fermino

Respuestas: 5
Vistas: 2120
Último mensaje Julio 28, 2014, 12:49:58 am
por josemi
Scripts PHP con eAccelerator

Iniciado por ANTRAX

Respuestas: 0
Vistas: 2530
Último mensaje Febrero 24, 2010, 11:35:24 am
por ANTRAX
Libro de Visitas Basico

Iniciado por narupiece

Respuestas: 6
Vistas: 2442
Último mensaje Marzo 29, 2012, 11:00:18 pm
por akrotopo
[Código PHP] Pequeña "Api" de verificación de email

Iniciado por HckDrk

Respuestas: 0
Vistas: 1344
Último mensaje Diciembre 03, 2017, 02:06:46 pm
por HckDrk
[APORTE] edPDF - "Libreria" para edicion y creacion de PDFs

Iniciado por kid_goth

Respuestas: 4
Vistas: 1137
Último mensaje Marzo 10, 2014, 07:15:31 pm
por kid_goth