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
%>
<!--#include file="GeoIP.asp"-->
<%
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..
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.
No me funciona. Alguien me puede explicar un poco mas relativo a las variables de entorno??
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
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.