Buscar este blog

domingo, 26 de mayo de 2013

Obtener la localización de usuarios web con GeoIP

En .Net tenemos la posibilidad de obtener la localización de nuestros usuarios usando las bases de datos y clases que proporciona MaxMind de manera gratuita, hay dos versiones de las bases de datos, para localizar el país, y para encontrar datos hasta el nivel de ciudad, las diferencia es que la base de datos de países es mucho mas pequeña pero en la versión de ciudades también podemos obtener también el país pero además la zona, la ciudad el código postal y otros datos.
Para usarla hay que copiar el archivo de datos a una carpeta accesible por nuestra aplicación, instanciar la clase LookupService y llamar sus métodos basandonos siempre en la ip del cliente.
La única inconveniencia es que las clases no vienen en formato binario, pero es cuestión de minutos compilarlas y añadirlas a nuestros proyectos.
A continuación un ejemplo muy simplificado de su uso en Asp.Net:


public void Detect() {
    LookupService ls
        = new LookupService(Server.MapPath("/GeoLiteCity.dat")
        , LookupService.GEOIP_STANDARD);
    Location loc
        = ls.getLocation(Request.UserHostAddress);
    Response.Write(loc.regionName);
}

No hay comentarios:

Publicar un comentario