GeoIP: Detectar el país del visitante con ASP

Escrito por Mauro Rondinelli el Lunes 17 de Mayo de 2004 a las 00:00hs

Muchas veces en el desarrollo de un sitio web nos podemos enfrentar a la posibilidad de tener que saber de que pa?s es el usuario que nos esta visitando, tanto para enviarlo a contenidos en su idioma como tambi?n para mostrarles publicidad especifica de su regi?n, validar datos, analizar los web logs, etc.

Por suerte un programador (Per Soderlind) se encargo de desarrollar un script ASP muy f?cil de usar el cual nos permite mediante la IP del usuario averiguar su pa?s.

Su forma de uso es muy f?cil, solamente debemos mediante un include llamar a un m?todo dentro del script, veamos el ejemplo...

<%
Option Explicit
%>

<%
Dim oGeoIP,strErrMsg
Dim strIP,strCountryName,strCountryCode

Set oGeoIP = New CountryLookup
oGeoIP.GeoIPDataBase = Server.MapPath("GeoIP.dat")
If oGeoIP.ErrNum(strErrMsg) <> 0 Then
Response.Write(strErrMsg)
Else
strIP = request.ServerVariables("REMOTE_ADDR")
strCountryName = oGeoIP.lookupCountryName(strIP)
strCountryCode = oGeoIP.lookupCountryCode(strIP)
End If
Set oGeoIP = Nothing
%>


Analicemos un poco el c?digo, lo primero que debemos hacer es incluir el mencionado script para ello utilizamos la directiva "include" que apunta al archivo GeoIP.asp (Debajo se puede descargar) este archivo es el que contiene todo el c?digo ASP para detectar el pa?s del usuario.

Luego definimos las variables a utilizar y creamos el objeto el cual nos expondr? todos los m?todos y propiedades del script GeoIP "Set oGeoIP = New CountryLookup". Por ultimo lo que debemos hacer es indicarle donde se encuentra la base de datos de GeoIP llamada "GeoIP.dat" (Debajo se puede descargar), esta base de datos contiene los c?digos de pa?ses (AR, ES, MX, CL, ETC) relacionados con los nombres de los pa?ses (Argentina, Espa?a, Etc.)

Es importante tener actualizado el archivo GeoIP.dat ya que las relaciones IP / Pais sufren cambios a medida que pasa el tiempo, pueden descargar el archivo actualizado desde el enlace titulado Download the latest GeoLite Country Binary Format, este archivo se actualiza cada mes y su uso es gratuito.

Una ves definida esa propiedad podemos utilizar los m?todos..

  • lookupCountryName(ip) - Pas?ndole como par?metro la ip devuelve el nombre del pa?s.
  • lookupCountryCode(ip) - Pas?ndole como par?metro la ip devuelve el codigo del pa?s.

Recordemos que para obtener la ip del usuario utilizamos..

strIP = request.ServerVariables("REMOTE_ADDR")

Bien, ahora siguiendo con el ejemplo anterior para mostrar los datos lo ?nico que debemos hacer es un Response.Write con los datos obtenidos..

<%
Response.Write strCountryName
Response.Write strCountryCode
%>


Podes descargar el ejemplo desde aqui.


comentarios



  1. No me funciona. Alguien me puede explicar un poco mas relativo a las variables de entorno??



  2. Hola:

    Se puede consultar el país correspondiente a una dirección IP aquí
    www.EcuaCel.Net

    La dirección exacta es
    http://www.ecuacel.net/index.php?option=com_wrapper&Itemid=22



  3. Hola amigo .. eh estado leyendo las funciones geoip del manual de php y por lo que entiendo hay que instalar unos modulos al lenguaje php en el servidor para poder usar dichas funciones. por casualidad sabes si es necesario hacer esto ? quisiera hacer unas pruebas con funciones geoip pero no creo q mi hosting me pèrmita instalarle extenciones al servidor .... otra cosa hay alguna forma de instalarlo en LOCAL usando Xammp ???
    saludos y gracias de antemano.



  4. Hola,

    es muy interesante este articulo. realmente es lo que necesito lo único que necesitaría saber como implementarlo para que cuando detecte un pais en concreto, redireccione a un página u a otra. de echo necesitaría que de todos lo paises, sólo a uno en particular lo llevase a un página y el resto de paises a otra. Si sabéis que código tendría que implementar os agradecería lo comentaseis.

    Gracias por vuestra colaboración.

    Un saludo,

    Cab.



  5. baje el archivo comprimirdo, puse una carpeta en C:Inetpubwwwrootgeoip y se publico en iis en una carpeta geoip, pero al momento de ejecutar el archivo ejemplo_geo.asp me sale un error http 500 error interno, no se a que se pueda deber...si alguien sabe como solucinar esto... GRACIAS DE ANTEMANO

agregar comentario


Se permiten las etiquetas HTML , y

. Si ingresa alguna direcci?n web o direcci?n de email ser?n convertidos en enlaces autom?ticamente.





publicidad

API DE FACEBOOK
GOOGLE CALENDAR API
GOOGLE MAPS API