2012-12-10 13 views
10

Czy istnieje sposób użycia dowolnego interfejsu API Google w celu uzyskania Geolokalizacji IP mojego użytkownika w czasie rzeczywistym?Google Geolokacja API IP

Myślę, że będzie korzystać z bazy danych Analytics i to jest jedyna, która śledzi mojego użytkownika na poziomie miasta, która jest rzeczywiście poprawna (Każdy inny interfejs IP-Location-API, który mogłem przetestować pokazuje mój adres IP w odległości prawie 200 km od Google pokazuje to 200m (!) z dala!)

Chcę poznać lokalizację mojego użytkownika (po stronie przeglądarki i przesłać go do mojego serwera lub po stronie serwera), aby wyświetlać treści zależne od miasta. Ale nie chcę, aby moi użytkownicy byli jednym z tych denerwujących wyskakujących okienek pytających o korzystanie z GPS, więc chcę użyć adresu IP.

Wszelkie sugestie?

+0

Wysłałem odpowiedź [tutaj] (http://stackoverflow.com/a/40049684/426790), która używa [Google Geolocation API] (https://developers.google.com/maps/documentation/ geolokalizacja/intro). –

Odpowiedz

10

Jeśli nie chcesz używać HTML5 style client-enabled GeoIP information, będziesz potrzebował bazy GeoIP jak MaxMind's GeoIP Lite database, która jest darmowa i działa dobrze w 99% przypadków użycia. Każda inna usługa z bardziej dokładnymi/szczegółowymi informacjami będzie Cię kosztować dużo pieniędzy. MaxMind jest chwalony przez wiele osób i działa dobrze na moje potrzeby, osobiście. Może podać informacje o kraju/regionie/mieście/współrzędnych geograficznych/kontynentach.

+0

Hmm ... Myślałem, że mogę w jakikolwiek sposób wykorzystać Dane Google. Myślę, że użyję bazy danych IP i udostępnię przycisk "Lokalizacja oparty" dla użytkowników, który umożliwi geolokację HTML5. Czy istnieje strona testowa dla programu MaxMinds GeoIP DB, aby sprawdzić dokładność mojego adresu IP? – keykiller91

+0

Nie jestem tego świadomy. Najlepszym sposobem na przetestowanie go jest pobranie go i wypróbowanie go. – Sherif

+1

Maxmind nie jest darmowy, ale ma również umowę licencyjną :( –

0

Możesz użyć geokodowania API Google, aby uzyskać prawdziwy adres dla lokalizacji, ale dane wejściowe wymagane dla tego interfejsu API to współrzędne szerokości i długości geograficznej.

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

Trzeba znaleźć i IP Location API od innego dostawcy, aby dostać się na poziomie miasta lub zachować możliwość skłonić ich do udzielenia Ci dostęp do ich geolokalizacji.

IPInfoDB robi bardzo dobrą pracę w automatycznie zawężenie lokalizację poprzez IP bez użycia wejścia:

http://ipinfodb.com/ip_location_api.php

+0

Nie ma mowy! Używam IPInfoDB, a użytkownicy Unitymedia (lokalny dostawca usług internetowych) nie mogą korzystać z usług opartych na lokalizacji, ponieważ umieszczają je wszystkie w jednym mieście (które nie pojawia się nawet w Google Analytics). – keykiller91

+0

Przypadek Unitymedia może nie może być wina IPinfoDB. Jeśli jest to konkretny dostawca usług internetowych, mogą korzystać z translacji NAT operatora, co oznacza, że ​​ludzie w całym regionie używają niewielkiej puli adresów IP, co uniemożliwia rozróżnienie, która sesja odbywa się według adresu IP. Sprawdź tę teczkę od Jason'a Fesler'a na Yahoo: http://meetings.apnic.net/__data/assets/file/0003/38298/fesler_yahoo_2011_post_ipv6_day_20min.pptx.pdf –