2012-12-10 13 views
10

C'è un modo per utilizzare una qualsiasi delle API di Google per ottenere la geolocalizzazione IP del mio utente in tempo reale?API di geolocalizzazione IP di Google

Penso che utilizzerà il database di Analytics e che è l'unico che tiene traccia del mio utente a livello di città che è effettivamente corretto (Qualsiasi altra IP-Location-API che potrei testare mostra il mio indirizzo IP a quasi 200 km di distanza da la mia vera posizione. Google lo mostra 200m (!) di distanza!)

Voglio conoscere la posizione del mio utente (dal lato del browser e trasmetterlo al mio server o al lato server) per servire il contenuto dipendente dalla città. Ma non voglio che i miei utenti siano uno di questi fastidiosi pop-up che chiedono l'uso del GPS, quindi voglio usare l'indirizzo IP.

Qualche suggerimento?

+0

Ho inviato una risposta [qui] (http://stackoverflow.com/a/40049684/426790) che utilizza [l'API di geolocalizzazione di Google Maps] (https://developers.google.com/maps/documentation/ geolocalizzazione/intro). –

risposta

10

Se non si desidera utilizzare HTML5 style client-enabled GeoIP information, che si sta per bisogno di un database GeoIP come MaxMind's GeoIP Lite database, che è gratuito e funziona bene per il 99% dei casi d'uso. Qualsiasi altro servizio con informazioni più accurate/dettagliate ti costerà un sacco di soldi. MaxMind è elogiato da molte persone e funziona bene per i miei bisogni, personalmente. Può darti informazioni su Paese/Regione/Città/Latitudine-Longitudine-Coordinate/Continente.

+0

Hmm ... Pensavo di poter utilizzare i dati di Google in qualsiasi modo. Penso che userò il database IP e fornirò un pulsante "Location based" per gli utenti, che abilita la geolocalizzazione HTML5. Esiste una pagina di prova per il DB GeoIP di MaxMinds per verificare l'accuratezza del mio IP? – keykiller91

+0

Non che io sappia. Il modo migliore per testarlo è scaricarlo e provarlo per te. – Sherif

+1

Maxmind non è libero anche avere qualche contratto di licenza :( –

0

È possibile utilizzare l'API di geocodifica di Google per ottenere un indirizzo reale per una posizione, ma gli input richiesti per tale API sono le coordinate di latitudine e longitudine.

Esempio: http://maps.googleapis.com/maps/api/geocode/json?latlng=43.473,-82.533&sensor=false

Hai bisogno di trovare e IP per Location API da qualche altro vendor per arrivare a un livello di città o di mantenere l'opzione per richiedere loro di concedere l'accesso per la loro geolocalizzazione.

IPInfoDB fa un buon lavoro a restringere automaticamente la posizione tramite IP senza l'uso di input:

http://ipinfodb.com/ip_location_api.php

+0

Niente da fare! In realtà sto usando IPInfoDB e gli utenti di Unitymedia (un ISP locale) non possono utilizzare i servizi basati sulla posizione, perché li inseriscono tutti in un'unica città (che non viene nemmeno visualizzata in Google Analytics) – keykiller91

+0

Il caso Unitymedia può non è colpa di IPinfoDB. Se si tratta di un ISP specifico, potrebbero utilizzare NAT di Carrier Grade, il che significa in effetti che le persone in tutta la regione utilizzano un piccolo pool di IP, rendendo impossibile decifrare la sessione in base all'indirizzo IP. Controlla questo mazzo da Jason Fesler su Yahoo: http://meetings.apnic.net/__data/assets/file/0003/38298/fesler_yahoo_2011_post_ipv6_day_20min.pptx.pdf –

Problemi correlati