Geolocalização através do IP

Geo-IP

Quer exibir seu site/app diferente de acordo para cada país (ip) de acesso?

Basicamente, todo o meu estudo está baseado em um resumo da ferramenta MaxMind (Free).

Passo a passo:

1) Baixe o country-redirect.php;

2) Baixe a base de Ips mais recentes aqui (link original) ou aqui (upload de 28-08-2012).

3) Extraia todos os arquivos e coloque-os em um único diretório.

Demo: Veja aqui um demo para exibir qual o seu país de acesso.

Mais informações

Atenção, eu não ofereço suporte para esse Script. Para mais informações, suporte e fórum de discussão, acesse MaxMind.

A localização não é garantida. A MaxMind diz que a chance de acerto é algo em torno de 99,5%.

Utilizando o script a seu favor

Para mostrar uma página específica, para cada faixa de ip, basta modificar o final de seu código country-redirect.php para:

if($country == ‘BR’)
{
header(‘Location: http://meusite.com.br‘);
exit();
}
else if($country == ‘US’)
{
header(‘Location: http://meusite.com‘);
exit();
}

Formato alternativo

Você ainda pode utilizar este script abaixo para escrever as informações de localização e a partir daqui, manipular o código da melhor forma. Veja aqui um Demo deste script. Ou então dê uma lida neste link (Ip2Location.com).

<div id=”loc”></div>
<script src=”http://j.maxmind.com/app/geoip.js”></script>
<script>
var geodata = ‘<ul>’ +
‘<li>Codigo Pais: ‘ + geoip_country_code() + ‘</li>’ +
‘<li>Codigo Nome: ‘ + geoip_country_name() + ‘</li>’ +
‘<li>Cidade: ‘ + geoip_city() + ‘</li>’ +
‘<li>Região: ‘ + geoip_region() + ‘</li>’ +
‘<li>Região Nome: ‘ + geoip_region_name() + ‘</li>’ +
‘<li>Latitude: ‘ + geoip_latitude() + ‘</li>’ +
‘<li>Longitude: ‘ + geoip_longitude() + ‘</li>’ +
‘<li>CEP: ‘ + geoip_postal_code() + ‘</li>’ +
‘</ul>’;
document.getElementById(‘loc’).innerHTML = geodata;
</script>

<div id=”loc”></div>
<script src=”http://j.maxmind.com/app/geoip.js”></script>
<script>
var geodata = ‘<ul>’ +
‘<li>Codigo Pais: ‘ + geoip_country_code() + ‘</li>’ +
‘<li>Codigo Nome: ‘ + geoip_country_name() + ‘</li>’ +
‘<li>Cidade: ‘ + geoip_city() + ‘</li>’ +
‘<li>Região: ‘ + geoip_region() + ‘</li>’ +
‘<li>Região Nome: ‘ + geoip_region_name() + ‘</li>’ +
‘<li>Latitude: ‘ + geoip_latitude() + ‘</li>’ +
‘<li>Longitude: ‘ + geoip_longitude() + ‘</li>’ +
‘<li>CEP: ‘ + geoip_postal_code() + ‘</li>’ +
‘</ul>’;
document.getElementById(‘loc’).innerHTML = geodata;
</script>

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *