2012-12-10 8 views
10

Gibt es eine Möglichkeit, eines der Google-APIs zu verwenden, um die IP Geolocation meines Benutzers in Live-Zeit zu erhalten?Google IP-Geolocation-API

Ich denke, es wird die Analytics-Datenbank verwenden und das ist die einzige, die meinen Benutzer auf Stadtebene verfolgt, die tatsächlich korrekt ist (Jede andere IP-Location-API, die ich testen könnte, zeigt meine IP-Adresse fast 200km entfernt Mein tatsächlicher Standort: Google zeigt es 200m (!) entfernt an!)

Ich möchte den Standort meines Benutzers wissen (auf Browserseite und an meinen Server oder auf Serverseite übertragen), um stadtabhängigen Inhalt zu liefern. Aber ich möchte meine Benutzer nicht zu einem dieser nervigen Pop-Ups bringen, die nach GPS fragen, also möchte ich die IP-Adresse verwenden.

Irgendwelche Vorschläge?

+0

Ich habe eine Antwort [hier] (http://stackoverflow.com/a/40049684/426790) veröffentlicht, die die [Google Maps Geolocation-API] verwendet (https://developers.google.com/maps/documentation/). Geolocation/Intro). –

Antwort

10

Wenn Sie nicht verwenden HTML5 style client-enabled GeoIP information wollen, werden Sie eine GeoIP-Datenbank benötigen, wie MaxMind's GeoIP Lite database, das ist kostenlos und funktioniert gut für 99% der Anwendungsfälle. Jeder andere Service mit genaueren/detaillierteren Informationen wird Sie eine Menge Geld kosten. MaxMind ist ein Lob von vielen Menschen und funktioniert gut für meine Bedürfnisse, persönlich. Es kann Ihnen Land/Region/Stadt/Breitengrad-Längengrad-Koordinaten/Kontinent Informationen geben.

+0

Hmm ... Ich dachte, ich könnte Google Daten in irgendeiner Weise verwenden. Ich denke, ich werde die IP-Datenbank verwenden und eine Schaltfläche "Location based" für die Benutzer bereitstellen, die die HTML5-Geolocation aktiviert. Gibt es eine Test-Seite für die MaxMinds GeoIP DB, um die Genauigkeit meiner IP zu testen? – keykiller91

+0

Nicht dass ich mir dessen bewusst bin. Der beste Weg, es zu testen, ist es, es herunterzuladen und es für sich selbst zu versuchen. – Sherif

+1

Maxmind ist nicht kostenlos auch es haben einige Lizenzvereinbarung :( –

0

Sie können die Geokodierungs-API von Google verwenden, um eine echte Adresse für einen Standort zu erhalten, aber die für diese API erforderlichen Eingaben sind die Längen- und Breitenkoordinaten.

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

Sie müssen finden und IP Location API von einem anderen Anbieter zu einem Stadtebene zu erhalten oder die Möglichkeit zu behalten, um sie fordert Sie auf, ihre geolocation Zugang zu gewähren.

IPInfoDB hat einen ziemlich guten Job bei automatisch den Standort über IP Eingrenzung ohne Verwendung Eingang:

http://ipinfodb.com/ip_location_api.php

+0

Kein Weg! Ich verwende IPInfoDB und die Benutzer von Unitymedia (einem lokalen ISP) können die standortbasierten Dienste nicht verwenden, da sie sie alle in einer Stadt platzieren (die nicht einmal in Google Analytics angezeigt wird) – keykiller91

+0

Der Fall Unitymedia kann bin nicht Schuld von IPinfoDB. Wenn es sich um einen bestimmten ISP handelt, könnten sie Carrier-Grade-NAT verwenden, was bedeutet, dass Menschen in der gesamten Region einen kleinen Pool von IPs verwenden, wodurch es unmöglich wird, die Sitzung allein durch die IP-Adresse zu entwirren. Überprüfen Sie dieses Deck von Jason Fesler bei Yahoo: http://meetings.apnic.net/__data/assets/file/0003/38298/fesler_yahoo_2011_post_ipv6_day_20min.pptx.pdf –