Como posso determinar a localização de um visitante no meu site?

19

Se eu quiser fornecer a um site o conteúdo apropriado para a localização, de que maneiras posso encontrar a localização aproximada do visitante usando suas informações de cabeçalho ou IP?

JamesRyan
fonte
maxmind.com/app/ip-location #
Christopher Schmidt
4
Você deve fazer esta pergunta no StackOverflow.com .
Jonas
7
Penso que sempre haverá perguntas cruzadas que serão apropriadas para ambos. Mas as respostas aqui com uma perspectiva GIS podem ser diferentes das respostas lá com uma perspectiva de programação.
21410 JamesRyan

Respostas:

12

Em primeiro lugar, você deve saber que a precisão desses serviços é e sempre será baixa.

A cidade MaxMind Geolite é gratuita . Se não for bom o suficiente, você pode aparentemente atualizar para uma versão paga mais precisa. Não posso falar pela qualidade da versão paga, pois nunca a usei.

Se você gosta do seu SQL, baixe a versão CSV . Carregue-o no banco de dados de sua escolha e faça a consulta.

A opção mais rápida e com economia de espaço é baixar a versão de blob binário do arquivo do mesmo banco de dados e usar uma API específica de idioma do mesmo site para consultá-lo.

Como alternativa, achei ipinfodb.com útil. A consulta é feita por HTTP GET simples. Por exemplo, para geolocalizar o stackoverflow.com, tente:

http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211

Isso retornará um arquivo XML contendo latitude e longitude, que se parece com:

<Response>
  <Ip>69.59.196.211</Ip>
  <Status>OK</Status>
  <CountryCode>US</CountryCode>
  <CountryName>United States</CountryName>
  <RegionCode>41</RegionCode>
  <RegionName>Oregon</RegionName>
  <City>Corvallis</City>
  <ZipPostalCode>97333</ZipPostalCode>
  <Latitude>44.4698</Latitude>
  <Longitude>-123.343</Longitude>
</Response>
fmark
fonte
5 anos depois .... Alguém pode atualizar esta resposta? Postar uma nova resposta?
Dror Atariah
5 anos mais tarde sistemas mais do geóide são inúteis, porque eles são incapazes de localizar usuários móveis corretamente ...
Mike Szyndel
9

O local que você pode deduzir do IP não é muito confiável (ou seja, às vezes funciona).

Se você deseja um local confiável, considere a API de geolocalização que faz parte do HTML5 . Observe, no entanto, que nem todos os navegadores da Web suportam (ainda).

Sean
fonte
1
+1 para HTML5. Você sempre pode usar os dois - se a API de geoloation falhar, volte ao IP. Mais suporte ao site significa mais pressão sobre os fornecedores de navegadores para oferecer suporte a melhores tecnologias.
naught101
Mas estamos falando de "localização aproximada do visitante", portanto, pode não ser o que você deseja. Um ponto importante é que a geolocalização HTML5 exibirá um prompt de confirmação assustador. Sim, o local normalmente será muito mais exato ... mas somente depois que o visitante concordar com o prompt de confirmação.
Harry Wood
3

Uma opção que se concentra no suporte móvel, embora também funcione bem na maioria dos navegadores de desktop (exceto no IE na minha experiência), é o pacote Geo-Location-Javascript que envolve a API de localização geográfica do HTML5 mencionada por Sean. Achei o suporte ao navegador móvel muito ruim para a API HTML5 (embora não seja surpreendente, pois ainda está em rascunho), por isso fui com este pacote.

Os resultados dos dispositivos moblie são muito bons em conexões celulares e Wi-Fi (e GPS, se o dispositivo tiver). Os navegadores de desktop relatam uma posição bastante granular comparável a outros serviços.

James M
fonte
2

Quova http://www.quova.com/ também possui um serviço. Falei com eles ontem no GeoLoco. De acordo com eles (então leve-o com um grão de sal), eles dizem que são muito melhores internacionalmente que o MaxMind. Eles são quase iguais na América do Norte.

Esteja ciente de que, para telefones móveis, o IP provavelmente será mapeado para onde quer que o Operador tenha seu gateway para a Internet. Você também pode tentar usar - http://www.loc-aid.com/ se estiver segmentando telefones celulares.

TheSteve0
fonte
2

O Google analytics fornece mapas e estatísticas básicas sobre a localização do seu visitante. Claro, você precisa compartilhar essas informações com o Google ...

julien
fonte
4
que iria deixar-me informar sobre os visitantes, mas não sob o meu conteúdo on the fly por localização
JamesRyan
0

ipinfodb.com é bom, mas eles estão offline no momento :(

Estou usando isso na minha API . É ótimo para o meu tempo, mas não sei agora que está offline desde ontem.

API mundial
fonte
1
Obrigado por sua resposta. Você notou que o @FMark já descreveu este serviço em uma resposta anterior neste tópico?
whuber
não é uma crítica sobre o ipinfodb, mas eu já tinha problemas com o meu conversor de moeda e a ferramenta API de moeda , tentei usá-lo para determinar automaticamente a localização e poderia fornecer a eles uma localização direta associada à moeda, mas; S tinha muitos problemas no site. dias desligada, ou algum erro de conexão ou contos um monte de tempo de carregamento que pode afetar o desempenho do site, eo google não quer que ...
jarauzes
Infodb parece ótimo, tentei por meses agora .. eles têm limite? quero dizer visitantes por dia?
0

Se você deseja fornecer a eles conteúdo ou anúncios com base em sua localização geográfica, não pode confiar para obter os dados de localização do dispositivo. Até mesmo em telefones celulares, há uma grande chance de que o GPS e o Wi-Fi estejam desligados, e eles precisam consentir em compartilhar o local.

É como: "Ei, você pode compartilhar sua localização comigo para que eu possa fornecer conteúdo e anúncios que eu acho que estão mais relacionados à sua localização geográfica?" Resposta: "Não! Dê-me o melhor conteúdo e anúncios que você tem por aí"

A única maneira de encontrar o local sem pedir permissão é através do endereço IP. Você pode instalar um banco de dados em seu próprio servidor e consultá-lo para encontrar a localização de um Endereço IP ou usar uma API externa necessária para consultar e obter os resultados. Estou usando a API de geolocalização do ipgp e estou trabalhando muito bem. ( http://www.ipgp.net/ip-address-geolocation-api/ )

Lucian
fonte