Se desidero fornire a un sito Web contenuti relativi alla posizione, quali modi posso utilizzare per trovare la posizione approssimativa del visitatore utilizzando le informazioni IP o di intestazione?
Se desidero fornire a un sito Web contenuti relativi alla posizione, quali modi posso utilizzare per trovare la posizione approssimativa del visitatore utilizzando le informazioni IP o di intestazione?
Risposte:
Innanzitutto, dovresti sapere che l'accuratezza di questi servizi è e sarà sempre bassa.
La città di MaxMind Geolite è gratuita . Se non è abbastanza buono, puoi apparentemente passare a una versione a pagamento più accurata. Non posso parlare per la qualità della versione a pagamento, in quanto non l'ho mai usato.
Se ti piace il tuo SQL, scarica la versione CSV . Caricalo nel tuo database preferito e esegui una query.
L'opzione più veloce ed efficiente in termini di spazio è scaricare la versione BLOB binaria del file dello stesso database e quindi utilizzare un'API specifica della lingua dallo stesso sito Web per interrogarla.
In alternativa, ho trovato ipinfodb.com utile. La query avviene tramite HTTP GET semplice. Ad esempio, per geolocalizzare stackoverflow.com provare:
http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211
Ciò restituirà un file XML contenente latitudine e longitudine, che assomiglia a:
<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>
La posizione che si può dedurre dall'IP non è molto affidabile (vale a dire che a volte funziona).
Se desideri una posizione affidabile, considera l' API di geolocalizzazione che fa parte di HTML5 . Si noti, tuttavia, che non tutti i browser Web lo supportano (ancora).
Un'opzione che si concentra sul supporto mobile, sebbene funzioni bene anche sulla maggior parte dei browser desktop (tranne IE nella mia esperienza), è il pacchetto Geo-Location-Javascript che racchiude l'API GeoLocation HTML5 citata da Sean. Ho trovato il supporto del browser mobile piuttosto scarso per l'API HTML5 (non sorprende, tuttavia, poiché è ancora in bozza), quindi è per questo che sono andato con questo pacchetto.
I risultati dei dispositivi moblie sono abbastanza buoni su connessioni cellulari e WiFi (e GPS se il dispositivo ce l'ha). I browser desktop riportano una posizione piuttosto approssimativa paragonabile ad altri servizi.
Puoi utilizzare questo URL e passargli un indirizzo IP. http://api.hostip.info/get_html.php?ip=84.32.32.44
Quova http://www.quova.com/ ha anche un servizio. Ho parlato con loro ieri a GeoLoco. Secondo loro (quindi prendilo con un granello di sale) dicono che sono molto meglio a livello internazionale di MaxMind. Sono quasi uguali in Nord America.
Essere consapevoli del fatto che per i telefoni cellulari l'IP probabilmente verrà mappato ovunque l'operatore abbia il proprio gateway verso Internet. Puoi anche provare a utilizzare - http://www.loc-aid.com/ se scegli come target i telefoni cellulari.
Google Analytics fornisce mappe e statistiche di base sulla posizione del tuo visitatore. Naturalmente, devi condividere queste informazioni con Google ...
ipinfodb.com è buono ma sono attualmente offline :(
Lo sto usando per la mia API . È fantastico per il mio tempo, ma non so che sia offline da ieri.
Se desideri fornire loro contenuti o annunci in base alla loro posizione geografica, non puoi fare affidamento per acquisire i dati sulla posizione dal dispositivo. Anche se sono su telefoni cellulari, è molto probabile che abbiano il GPS e il wifi disattivati e debbano dare il loro consenso per condividere la posizione.
È come: "Ehi, puoi condividere la tua posizione con me in modo che io possa darti contenuti e annunci che ritengo siano più legati alla tua posizione geografica?" Risposta: "No! Dammi i migliori contenuti e annunci che hai là fuori"
L'unico modo per trovare la posizione senza chiedere loro l'autorizzazione è tramite il loro indirizzo IP. È possibile installare un database sul proprio server e interrogarlo per trovare la posizione di un indirizzo IP o utilizzare un'API esterna che è necessario interrogare e ottenere i risultati. Sto usando l'API di geolocalizzazione ipgp e sto lavorando alla grande. ( http://www.ipgp.net/ip-address-geolocation-api/ )