GeoLite Country para ASP. Conhecer o país de um IP

Vamos falar de GeoLite Country, um produto gratuito que nos serve para conhecer o país de procedência de nossos visitantes, que se deduz a partir de seu endereço IP. Cada endereço IP corresponde a um provedor de acesso a Internet, localizado em um país. Cada provedor tem atribuído uma categoria de endereços IP para realizar suas atividades. Estes produtos têm um banco de dados com essas categorias de endereços IP que se correspondem a cada provedor e país.

Este software pode ser baixado gratuitamente, porém não é tão preciso como GeoIP Country, a versão avançada paga, também desenvolvida por MaxMind. Como GeoLite Country é gratuito, se oferece sem suporte técnico e as atualizações do banco de dados são menos freqüentes que a versão paga. Trataremos neste artigo concretamente a versão gratuita para instala-la em um servidor ASP.

Na página de MaxMind pode-se encontrar tanto as versões gratuitas como as pagas de GeoIP. Além disso, têm vários formatos ou módulos, para averiguar países ou cidades e um API que se pode utilizar em páginas web para consultar o banco de dados de IPs.

A versão gratuita de GeoIP está em http://www.maxmind.com/app/geoip_country

O mais simples é utilizar o API que oferecem gratuitamente para fazer localizações de países. O API está no endereço http://www.maxmind.com/app/api

Como estamos interessados na instalação do API em um servidor ASP, de todas as linguagens nas quais se oferece o API, nos interessa o “MS COM Object” (Objeto COM de Microsoft), que está no endereço http://www.maxmind.com/app/com

Ali veremos um link para download grátis, que nos levará a um diretório onde encontraremos vários arquivos. Nós selecionamos o arquivo GeoIP-COM-1.0.zip. Obviamente, teríamos que obter a versão mais nova disponível. Uma vez baixado, podemos descompactar e veremos que inclui vários arquivos, com tudo que nos faz falta para começar nossa localização de países por IP. Entre o que encontraremos neste arquivo está um arquivo .dll que temos que instalar no servidor e uma série de páginas com exemplos de programação para localizar o país do visitante por seu IP. Há exemplos de programação em ASP, PHP, Cold Fusion, Perl, Python… Também há um txt com instruções para instalar o componente e usa-lo corretamente.

Instalar o componente GeoIP

Para instalar um componente COM no servidor temos que realizar uma série de passos relatados no artigoComponentes do servidor ASP. Embora no txt nos explicam também a tarefa:

  1. Copiar GeoIPDemo.dat en C:Arquivos de programageoipGeoIPDemo.dat
    (Este diretório pode-se muda-lo ao nosso gosto. Logo, na programação ASP, indicaremos o diretório concreto onde tivermos colocado o arquivo)
  2. Copiar GeoIPCOM.dll no diretório “system32”. Dependendo de nossa instalação de Windows este diretório pode estar em ou outro site. Por exemplo, em Win XP Pro está em C:windowssystem32
  3. Registrar o componente COM, com as instruções:
    C:> cd windowssystem32
    C:windowssystem32> regsvr32 GeoIPCOM.dll

De qualquer forma, muitas vezes queremos instalar o componente em um servidor de hospedagem compartilhada, onde teremos que realizar ações distintas. O normal é que no servidor nos indiquem como registrar componentes COM. Certamente, alguns provedores não o permitam, mas o normal é que sim nos deixem instala-los. No caso de não ser assim, teríamos que pensar em mudarmos de servidor de hosting.

Quanto a copiar .dat em C:Arquivos de programageoipGeoIPDemo.dat, logicamente, em um servidor de hosting normal não vamos poder, porque não vamos ter acesso a esse diretório. Por isso, teremos que subir por FTP o arquivo e hospeda-lo em um diretório onde sim possamos subir arquivos. Como dissemos, posteriormente, no script ASP para localizar o IP, poderemos indicar onde se colocou esse arquivo.

Script ASP de prova do componente

Como dizíamos, no próprio pacote de download temos uma série de exemplos em várias linguagens de programação para provar o sistema de localização de IP de GeoLite. Nós vamos utilizar o arquivo .asp, que modificamos um pouco para adicionar uns comentários e simplifica-lo ao nosso gosto.

O código do exemplo que funcionou perfeitamente em nosso servidor local é o seguinte:

<% Response.Buffer = TRUE %>
<html>
<title>GeoIP Lite Test</title>
<body bgcolor=#CCCCDD>
<h1><center>GeoIP Lite Test</center></h1>
<br><center>
<br>
<form action=”GeoIPTest.asp” method=”POST”>
<table border=0>
<tr><td>hostname:</td><td><input type=text name=hostname></td></tr>
</table>
<input type=submit value=”Submit” name=submit>
</form>
<%
if Request.Form(“submit”) = “Submit” then
‘se se recebem dados de formulario

‘recebo o nome do host que queremos ver a ip
hostname = Request.Form(“hostname”)

‘crio o objeto geoip
set geoip = Server.CreateObject(“GeoIPCOM.GeoIP”)
‘carrego o arquivo com os dados de ips e países
geoip.loadDataFile(“C:Arquivos de programageoipGeoIPDemo.dat”)
‘obtengo dados sobre o hostname recebido por formulario
country_code = geoip.country_code_by_name(hostname)
country_name = geoip.country_name_by_name(hostname)

‘mostramos os dados deste host
Response.Write(“<table cellpadding=2 border=1><tr><th colspan=2>Results</th></tr>”)
Response.Write(“<tr><td>Hostname</td><td>” + hostname + “</td></tr>”)
Response.Write(“<tr><td>ISO 3166 Country Code</td><td>” + country_code + “</td></tr>”)
Response.Write(“<tr><td>Full Country Name</td><td>” + country_name + “</td></tr>”)
Response.Write(“</table>”)

end if
%>
</center>
</body>
</html>

Fonte: http://www.criarweb.com/artigos/geolite-country-asp-conhecer-pais-ip.html

Deixe um comentário