Autor
|
Tema: "Super contador de Visitas en PHP"=300MB SQL+4 millones de registros+Scripts (Leído 26,783 veces)
|
Graphixx
Desconectado
Mensajes: 1.336
Full Stack Developer
|
El proyecto va asi:http://www.sistemasycontroles.net/ip/La idea es lograr algo asi: http://live.feedjit.com/live/hackplayers.com/0/Puedes descargar todos los archivos del proyecto aca:graphixx_contador_de_visitas_php.zip (9.56 MB)Las bases de datos con las IP mundiales aca:http://foro.elhacker.net/desarrollo_web/descarga_14_mil_dolares_en_bases_de_datos_del_proyecto_del_contador_php-t367571.0.html EL paquete incluye: La base de datos con los rangos ip de todo el mundo la saque de:http://ipinfodb.com/ip_database.phpDescargar la base de datos de ip mundiales de:http://www.megaupload.com/?d=NJZHXD5SAqui 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_elegirlas 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%2FEl 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"; $_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>"; echo "<img src=banderas_iso3166/".$lstring.".GIF border=0><br>"; //header( "Location: bienvenido.php" ); } else { //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) { 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 / // 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; ?>
Añadido al proyecto la libreria para dibujar en un mapa global las visitas:GIS mapping in PHP: Part 1Plotting a longitude / latitude coordinate on a raster map of the world using PHP and GD. http://www.web-max.ca/PHP/article_1.phpGIS mapping in PHP: Part 2Loading 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.phpGIS mapping in PHP: Part 3Retrieving user selected longitude and latitude coordinates from a raster map of the world. http://www.web-max.ca/PHP/article_3.phpGIS 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.phpproyecto logrado gracias a:http://en.wikipedia.org/wiki/Mercator_projectionPara 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....?
|
|
« Última modificación: 26 Mayo 2013, 23:17 pm por Graphixx »
|
En línea
|
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
|
|
|
#!drvy
|
Lo primero no lo veo posible a no ser que el propio link hacia el que va a partir el usuario no este indicado en tu propia pagina. Lo segundo, segun he entendido queres saber lo que buscaba el usuario mediante el referer o algo asi no ? seria parecido a esto: <?php function get_search($referer) { return $b; } if(stristr($_SERVER['HTTP_REFERER'],'google')){ print '<strong>Bienvenido, la busqueda de:</strong> '.get_search($_SERVER['HTTP_REFERER']); print ' <strong>te ha traido hasta este sitio. Gracias por visitarme =).</strong>'; } ?>
Saludos
|
|
|
En línea
|
|
|
|
Graphixx
Desconectado
Mensajes: 1.336
Full Stack Developer
|
Gracias drvy | BSM justo lo que andaba buscando e Incluire para optener la ip una funcion que posteo el compañero cuántico: <?php function getIP() { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_VIA'])) { $ips = $_SERVER['HTTP_VIA']; } elseif (isset($_SERVER['REMOTE_ADDR'])) { $ips = $_SERVER['REMOTE_ADDR']; } else { $ips = "unknown"; } echo "Tu IP es: $ips"; } if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip1 = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_VIA'])) { $ip1 = $_SERVER['HTTP_VIA']; } elseif (isset($_SERVER['REMOTE_ADDR'])) { $ip1 = $_SERVER['REMOTE_ADDR']; } else { $ip1 = "unknown"; } ?>
Se llama asi: <?php getIP(); ?>
|
|
|
En línea
|
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
|
|
|
#!drvy
|
Hola =) No te recomiendo usar HTTP_X_FORWARDED_FOR. Pues serviría para obtener el proxy (al igual que HTTP_VIA) ( en caso de que el cliente use tal) pero es fácilmente modificable mediante los headers del navegador.
En todo caso usar únicamente REMOTE_ADDR te bastaría a no ser que quieras comprobar si el cliente usa proxy y en tal caso indicarlo.
Saludos
|
|
|
En línea
|
|
|
|
Graphixx
Desconectado
Mensajes: 1.336
Full Stack Developer
|
Lo primero no lo veo posible a no ser que el propio link hacia el que va a partir el usuario no este indicado en tu propia pagina. Lo segundo, segun he entendido queres saber lo que buscaba el usuario mediante el referer o algo asi no ? seria parecido a esto: <?php function get_search($referer) { return $b; } if(stristr($_SERVER['HTTP_REFERER'],'google')){ print '<strong>Bienvenido, la busqueda de:</strong> '.get_search($_SERVER['HTTP_REFERER']); print ' <strong>te ha traido hasta este sitio. Gracias por visitarme =).</strong>'; } ?>
Saludos COmpa mira lo que me devuelve el code que posteaste: Bienvenido, la busqueda de: http%3A%2F%2Fsistemasycontroles.net%2Fip te ha traido hasta este sitio. Gracias por visitarme =). los : salen como "%3" y el / sencillo como "%2F" Para lo de las palabras claves de busqueda en google con las que llegaron a la web, creo y va ser mejor usar: http://www.phpclasses.org/package/4383-PHP-Extract-keywords-used-to-search-in-the-site-Google.html<?php function GoogleQuery () { //Comprobamos que la pagina referente pertenece a Google if (strpos ($_SERVER["HTTP_REFERER"], “google” )) { //Almacenamos en la variable $string el contenido de la variable $_SERVER["HTTP_REFERER"] $string = $_SERVER["HTTP_REFERER"]; //Inicialimamos a 0 el valor de la variable que nos indicara la longitud de la cadena contenida en la variable q. $longQuery = 0; // — Encontramos la variable q y su final delimitado por & for ($i=0; $i < strlen ($string); $i++){ if ($string[$i] == ‘q’) { for ($n=$i; $n < strlen ($string) ;$n++) { if ($string[$n] == ‘&’) { // — Extraemos la subcadena a partir de las posiciones de (inicio)$i+2 [excluimos 'q='] y (fin)$n-2 [adelantamos 2 posiciones el final de la cadena resultante] $q = substr ($string, $i+2, $longQuery-2); break; } $longQuery ++; } break; } } //reemplazamos los símbolos + por espacios en blanco } return $q; } //Mostramos el resultado haciendo una llamada a la función echo GoogleQuery (); ?>
ya probe esta funcion y retorna lo mismo
|
|
« Última modificación: 4 Enero 2011, 23:37 pm por Graphixx »
|
En línea
|
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
|
|
|
Graphixx
Desconectado
Mensajes: 1.336
Full Stack Developer
|
Intente cuadrarlo asi: <?php function get_search($referer) { return $b; } if(stristr($_SERVER['HTTP_REFERER'],'google')){ print '<strong>Bienvenido, la busqueda de:</strong> '.get_search($_SERVER['HTTP_REFERER']); print ' <strong>te ha traido hasta este sitio. Gracias por visitarme =).</strong>'; } ?>
pero me mostro: Bienvenido, la busqueda de: http%3A//www.sistemasycontroles.net/ip te ha traido hasta este sitio. Gracias por visitarme =). No tomo el $b = str_replace("%3A",":", $a[1]); , Alguien sabe por que ?
|
|
|
En línea
|
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
|
|
|
#!drvy
|
Hola, no tiene sentido usar un code tan largo para hacer lo mismo xD Simplemente usa urldecode. Algo asi: <?php function get_search($referer) { return $b; } if(stristr($_SERVER['HTTP_REFERER'],'google')){ print '<strong>Bienvenido, la busqueda de:</strong> '.get_search($_SERVER['HTTP_REFERER']); print ' <strong>te ha traido hasta este sitio. Gracias por visitarme =).</strong>'; } ?>
con lo que la busqueda de: http://www.google.com/search?hl=en&source=hp&biw=1280&bih=923&q=http%3A%2F%2Fsistemasycontroles.net%2Fip&btnG=Google+Search&aq=f&aqi=m1&aql=&oq=&gs_rfai= te daria: Bienvenido, la busqueda de: http://sistemasycontroles.net/ te ha traido hasta este sitio. Gracias por visitarme =). Saludos
|
|
« Última modificación: 5 Enero 2011, 16:18 pm por drvy | BSM »
|
En línea
|
|
|
|
Graphixx
Desconectado
Mensajes: 1.336
Full Stack Developer
|
|
|
|
En línea
|
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
|
|
|
Graphixx
Desconectado
Mensajes: 1.336
Full Stack Developer
|
Para identificar los navegadores: <?php if ((ereg("Nav", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Gold", $_SERVER["HTTP_USER_AGENT"])) || (ereg("X11", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Mozilla", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Netscape", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("Chrome", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) AND (!ereg("Firefox", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Netscape"; elseif(ereg("Firefox", $_SERVER["HTTP_USER_AGENT"])) $browser = "FireFox"; elseif(ereg("MSIE", $_SERVER["HTTP_USER_AGENT"])) $browser = "MSIE"; elseif(ereg("Chrome", $_SERVER["HTTP_USER_AGENT"])) $browser = "Chrome"; elseif(ereg("Lynx", $_SERVER["HTTP_USER_AGENT"])) $browser = "Lynx"; elseif(ereg("Opera", $_SERVER["HTTP_USER_AGENT"])) $browser = "Opera"; elseif(ereg("WebTV", $_SERVER["HTTP_USER_AGENT"])) $browser = "WebTV"; elseif(ereg("Konqueror", $_SERVER["HTTP_USER_AGENT"])) $browser = "Konqueror"; elseif((eregi("bot", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Google", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Slurp", $_SERVER["HTTP_USER_AGENT"])) || (ereg("Scooter", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Spider", $_SERVER["HTTP_USER_AGENT"])) || (eregi("Infoseek", $_SERVER["HTTP_USER_AGENT"]))) $browser = "Bot"; else $browser = "Other"; echo "EL navegador es: ".$browser; ?>
|
|
|
En línea
|
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx Rōninnovation
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 1.125
|
Te recomiendo que no uses la función ereg() ya que esta obsoleta desde la versión 5.3.0 de PHP, si migras o actualiza a una version actual, ya sea por seguridad o otro motivo y usas ereg, te dara errores. Ocupa preg_match(). Saludos.
|
|
|
En línea
|
Mi madre me dijo que estoy destinado a ser pobre toda la vida. Engineering is the art of balancing the benefits and drawbacks of any approach.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
recursos visual basic, """"""proceso inmortal"""""
Análisis y Diseño de Malware
|
Dark4ngel
|
7
|
14,104
|
3 Noviembre 2011, 10:42 am
por Dark4ngel
|
|
|
[Super Grub2] "can’t access tty; job control turned off" // "unreconiseg ff"
Unix/Unix-Like
|
KuraraGNU
|
0
|
3,587
|
29 Diciembre 2011, 02:56 am
por KuraraGNU
|
|
|
herramientas para hacer "Nulled" en scripts con licencias ?
Ingeniería Inversa
|
Weeken
|
2
|
3,167
|
9 Febrero 2013, 04:16 am
por .:UND3R:.
|
|
|
"YouTube está roto y puedes pillar muchas visitas": así de fácil es plagiar ...
Noticias
|
wolfbcn
|
0
|
1,133
|
3 Junio 2019, 14:59 pm
por wolfbcn
|
|
|
'Diario Gol' multiplica sus visitas con titulares engañosos y "matando" a ...
Noticias
|
wolfbcn
|
0
|
1,260
|
10 Octubre 2019, 19:55 pm
por wolfbcn
|
|