componente geo posicionamiento ip con cakephp

componente geo posicionamiento ip con cakephp

Con este componente podrás geo posicionar algunas secciones de tu web, mediante una base de datos con los países.
Se puede Geoposiciar un site entero pero no es nada recomendable por motivos de SEO, ya que al señor Google no le gusta nada. Pero puede ser útil para algunos fragmentos de html, como módulos de tienda de diferentes paises, geo posicionamiento de publicidades, etc..

1.- Obtener la base de datos de GeoLite
Descargar la última versión de la base de datos con los países de GeoLite.
Tarda un poco porque son casi 19MB
http://www.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
Cuando se descargue hay que ubicarlo en la siguiente ruta [CakeDirectorio]/webroot/files/geolitecity.dat

2.- Crea el componente de cakephp
/app/controllers/components/geo_ip.php

class GeoIpComponent extends Object {
    function lookupIp($ip)
    {
         App::import('Vendor','geoipcity');

        $gi = geoip_open("files/geolitecity.dat", GEOIP_STANDARD);
        $result = geoip_record_by_addr($gi, $ip);
        geoip_close($gi);

        return get_object_vars($result);
    }

    function findIp()
    {
      if(getenv("HTTP_CLIENT_IP"))
        return getenv("HTTP_CLIENT_IP");
      elseif(getenv("HTTP_X_FORWARDED_FOR"))
        return getenv("HTTP_X_FORWARDED_FOR");
      else
        return getenv("REMOTE_ADDR");
    }
}

3.- Descargar los archivos de la API
Descargar la API que controla la base de datos con las ciudades y países que has descargado en el punto 1.
Esta API controla las consultas y accesos a la base de datos de GeoIP. Si quieres informarte mas sobre los métodos y otras funciones puedes verlo aquí: http://www.maxmind.com/app/php
Descarga de la siguiente url: http://geolite.maxmind.com/download/geoip/api/php/ los siguientes archivos geoipregionvars.php, geoipcity.php, geoip.php y guárdalos en el siguiente path:

[CakeDirectorio]/app/vendors/geoipregionvars.php
[CakeDirectorio]/app/vendors/geoipcity.php
[CakeDirectorio]/app/vendors/geoip.php

4.- Implementar el Geo Posicionamiento en un controlador
/app/controllers/geo_ip_controller.php

class GeoIpController extends AppController {
    var $name = 'GeoIpSample';
    var $components = Array('GeoIp');

    function index() {
        $ip = $this->GeoIp->findIp();
        $ip_loc = $this->GeoIp->lookupIp($ip);

        $this->set('user_ip', $ip);
        $this->set('user_location', $ip_loc);
    }
}

5.- Mostrar los resultados en una vista

<p><?=$user_location['city']?>, <?=$user_location['region']?> <?=$user_location['country_name']?> es mi lugar favorito.</p>
<p><small>Tu ip es: <?=$user_ip?></small></p>

Mostrar la longitud y latitud de los resultados obtenidos

<p>
<strong>Longitud:</strong> <?=$user_location['longitude']?><br/>
<strong>Latitud:</strong> <?=$user_location['latitude']?>
</p>

6.- Geo Posicionamiento permanente en todos los controllers

Si quieres geo posicionar algún elemento en concreto de tu web de manera permanente, y que este geo posicionamiento se lleve a cabo en todos los controllers lo tendrás que incluir en el app_controller.php

/app/controllers/app_controller.php

class AppController extends Controller
 {
     var $components = Array('GeoIp');

     function beforeFilter()
     {
        parent::beforeFilter();
        $ip = $this->GeoIp->findIp();
        $ip_loc = $this->GeoIp->lookupIp($ip);
         // obtengo el codigo de pais y lo asigno a una variable.
        $codigo_pais =  $ip_loc['country_code'];
        $this->set("codigo_pais",$codigo_pais);
     }
}

Tags de búsquedas:

cakephp geoip,posicionamiento ip,componente geo,como geoposicionar ip,descargar geolite apk,codificacion de caracteres geolitecity maxmind,geoposicionamiento ip,guardar ip en mysql con geoip,php geoposicionamiento,geoposicionamiento en php

Noticias relacionadas »

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Invertir en criptomonedas: »

 

Cómo comprar bitcoin

Invertir y comprar Bitcoin y otras altcoins es más fácil de lo que crees.

1) Si sólo quieres comprar Bitcoin, Ethereum o Litecoin como inversión, tu opción es Coinbase

2) Si quieres probar con otras criptomonedas tu opción es Binance

3) Cualquier duda escríbeme con total libertad al formulario de contacto para resolver dudas: https://www.pedroventura.com/contacto/

¡Comparte este artículo! »

  • Irene (20 horas)
    I used www.zerobounce.net and it is an amazing platform for…
  • Felipe Albornoz (2 días)
    Agradecido. Saludos.
  • Joel (2 semanas)
    Este grupo es buenísimo hay personas de todo el mundo…
  • Citricus (2 semanas)
    Análisis muy buenos y detallados: Crypto Trading Campus https://t.me/cryptotradingcampus
  • Vane (2 meses)
    Hola muy buena información, en lo personal mino con Javascript…
  • Gabriel Roncancio (2 meses)
    Hola Pedro, gracias por compartir. Tu artículo me dió algunas…

Suscríbete al newsletter »

Proporciona tu correo electrónico a continuación y recibe las últimas noticias! Funciona con Feedburner de Google

Archivo »

Leer entrada anterior
Sphinx configuración. Busquedas con y sin acentos y carácteres utf8

Para aquellos que usen Sphinx como motor de búsqueda en sus aplicaciones y que necesitan realizar búsquedas independientes de los...

Cerrar