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?
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?
Respostas:
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>
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).
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.
Você pode usar esse URL e transmitir um endereço IP. http://api.hostip.info/get_html.php?ip=84.32.32.44
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.
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 ...
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.
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/ )