ASP - Identificando o País do visitante


Antes de entrar no artigo propriamente dito gostaria de comentar uma pesquisa publicada na revista INFO Exame do mês de agosto. O título da matéria é : As cifras do e-commerce e na página 49 da revista há uma pesquisa publicada com o título : ASP MANTÉM A DIANTEIRA.

Pois bem, lá temos a indicação que dentre as tecnologias de acesso a dados a ASP ocupa o primeiro lugar com 47% do mercado brasileiro seguida de perto pela ASP.NET com 36.1 e Ajax com 26.5. Confesso que fiquei surpreso pela quantidade do mercado que ainda usa ASP.

Agora voltando ao nosso artigo; Você já precisou determinar o país de origem do visitante do seu site ?

Se não precisou , sabe como é, um dia pode precisar.... Felizmente alguém já fez o trabalho pesado para nós.

Existe no mercado uma base de dados contendo o relacionamento de IPs com o país de origem. Basta você pegar esta base de dados que possui uma versão gratuita e usar no seu código ASP. O link para fazer o download do arquivo é Download the latest GeoLite Country Binary Format. Existe um script em ASP (que também já esta pronto) e que deverá ser usado como um arquivo de include, chamado GeoIP.asp, que faz o acesso a este arquivo GeoIP.dat.

A seguir temos um exemplo bem simples de como usar o arquivo de include GeoIP.asp e de como acessar a base de dados GeoIP.dat e obter o nome do país e o seu código. Você pode digitar este código em qualquer editor de textos e salvá-lo com o nome: exemploGeoIP.asp.

exemploGeoIP.asp

<%
Option Explicit
%>
<!--#include file="GeoIP.asp"-->
<%
Dim oGeoIP,strErrMsg
Dim strIP,strNomePais,strCodigoPais

Set oGeoIP = New CountryLookup
oGeoIP.GeoIPDataBase = Server.MapPath("GeoIP.dat")

If oGeoIP.ErrNum(strErrMsg) <> 0 Then
	Response.Write(strErrMsg)
Else
             'obtem o IP do visitante
	strIP = request.ServerVariables("REMOTE_ADDR")
	strNomePais= oGeoIP.lookupCountryName(strIP)
	strCodigoPais = oGeoIP.lookupCountryCode(strIP)
End If
Set oGeoIP = Nothing
%>

Estamos obtendo o IP do visitante com o código:  strIP = request.ServerVariables("REMOTE_ADDR")

A seguir usamos os métodos lookupCountryName(strIP) e lookupCountryCode(strIP) para obter o nome do país e seu código.

Após liberar o objeto da memória podemos exibir o resultado armazenado nas variáveis strNomePais e strCodigoPais.

Abaixo temos um código HTML bem simples que pode ser usado no mesmo arquivo exemploGeoIP.asp acima:

<html>
<head>
<title>Demonstração de uso do GeoIP</title>
</head>
<body>
<p align="center">
Identificando o País do visitante</font></b></p>
<hr>
    </p>
    Seu IP é <%=strIP%> <p>
    Você está no(a) <%=strNomePais%> <p>
    Código do Pais : <%=strCodigoPais%>
  </tr>
</body>
</html>

 

Você pode também baixar o script ASP e o arquivo GeoIP.dat aqui : exemploGeoIP.zip

Você deve criar um diretório virtual (Ex: \Inetpub\wwwroot\geoIP) e acessar a página via IIS(Internet Information Server).

Para minha máquina local eu criei uma pasta chamada geoIP em \inetpub\wwwroot e coloquei nela os arquivos : GeoIP.asp , GeoIP.dat e exemploGeoIP.asp. O resultado da execução da página obtida foi:

Para ver o exemplo on-line clique aqui :  verificando o país de origem.

Nota: Você deverá manter o arquivo GeoIP.dat atualizado pois as relações IP/País de origem podem sofrer variações.

Para mais informações visite o sítio: http://www.maxmind.com/app/geoip_country

Até o próximo artigo ASP...

Referências:


José Carlos Macoratti