Wie kann ich den Standort eines Besuchers meiner Website ermitteln?

19

Wie kann ich den ungefähren Standort des Besuchers anhand seiner IP-Adresse oder Header-Informationen ermitteln, wenn ich einer Website standortgerechten Inhalt bereitstellen möchte?

JamesRyan
quelle
maxmind.com/app/ip-location
Christopher Schmidt
4
Sie sollten diese Frage stattdessen auf StackOverflow.com stellen .
Jonas
7
Ich denke, dass es immer Crossover-Fragen geben wird, die für beide angemessen sind. Die Antworten hier mit einer GIS-Perspektive können sich jedoch von den Antworten dort mit einer Programmierperspektive unterscheiden.
James Ryan

Antworten:

12

Erstens sollten Sie wissen, dass die Genauigkeit dieser Dienste niedrig ist und immer niedrig sein wird.

MaxMind Geolite city ist kostenlos . Wenn es nicht gut genug ist, können Sie anscheinend auf eine genauere kostenpflichtige Version upgraden. Ich kann nicht für die Qualität der kostenpflichtigen Version sprechen, da ich sie noch nie benutzt habe.

Wenn Sie Ihr SQL mögen, laden Sie die CSV-Version herunter . Laden Sie es in eine Datenbank Ihrer Wahl und fragen Sie es ab.

Die schnellere und platzsparendere Option besteht darin, die Dateibinär-Blob-Version derselben Datenbank herunterzuladen und sie dann mithilfe einer sprachspezifischen API von derselben Website abzufragen.

Alternativ habe ich ipinfodb.com als nützlich empfunden . Die Abfrage erfolgt durch einfaches HTTP GET. Um beispielsweise stackoverflow.com zu lokalisieren, versuchen Sie Folgendes:

http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211

Dies gibt eine XML-Datei mit Breiten- und Längengraden zurück, die wie folgt aussieht:

<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>
fmark
quelle
5 Jahre später .... Kann jemand diese Antwort aktualisieren? Neue Antwort schreiben?
Dror Atariah
5 Jahre später sind die meisten
Geoidsysteme
9

Die Position, die Sie von IP ableiten können, ist nicht sehr zuverlässig (dh es funktioniert manchmal irgendwie).

Wenn Sie einen zuverlässigen Standort benötigen , ziehen Sie die Geolocation-API in Betracht, die Teil von HTML5 ist . Beachten Sie jedoch, dass dies (noch) nicht von allen Webbrowsern unterstützt wird.

Sean
quelle
1
+1 für HTML5. Sie können immer beides verwenden. Wenn die Geoloation-API fehlschlägt, greifen Sie auf IP zurück. Mehr Website-Support bedeutet mehr Druck auf die Browser-Anbieter, bessere Technologien zu unterstützen.
naught101
Es handelt sich jedoch um die "raue Position des Besuchers", daher ist dies möglicherweise nicht das, was Sie möchten. Ein wichtiger Punkt ist, dass die HTML5-Geolokalisierung eine beängstigend aussehende Bestätigungsaufforderung anzeigt. Ja, der Ort wird in der Regel viel genauer sein ... aber erst, wenn der Besucher der Bestätigungsaufforderung zustimmt.
Harry Wood
3

Eine Option, die sich auf die mobile Unterstützung konzentriert, obwohl sie auch auf den meisten Desktop-Browsern gut funktioniert (mit Ausnahme des IE nach meiner Erfahrung), ist das Paket Geo-Location-Javascript , das die von Sean erwähnte HTML5-GeoLocation-API umschließt. Ich fand die Unterstützung des mobilen Browsers für die HTML5-API ziemlich schlecht (nicht überraschend, da es sich noch im Entwurf befindet), deshalb habe ich mich für dieses Paket entschieden.

Die Ergebnisse von Mobilgeräten sind über Mobilfunk- und WiFi-Verbindungen (und GPS, wenn das Gerät es hat) ziemlich gut. Desktop-Browser melden eine ziemlich grobe Position, die mit anderen Diensten vergleichbar ist.

James M
quelle
2

Quova http://www.quova.com/ hat auch einen Service. Ich habe gestern bei GeoLoco mit ihnen gesprochen. Nach ihren Angaben (also nehmen Sie es mit einem Körnchen Salz) sind sie international viel besser als MaxMind. In Nordamerika sind sie ungefähr gleich.

Beachten Sie, dass bei Mobiltelefonen die IP-Adresse wahrscheinlich überall dort zugeordnet wird, wo der Betreiber über ein Gateway zum Internet verfügt. Sie können auch versuchen, - http://www.loc-aid.com/ zu verwenden, wenn Sie auf Mobiltelefone ausgerichtet sind.

TheSteve0
quelle
2

Google Analytics bietet grundlegende Karten und Statistiken zum Standort Ihres Besuchers. Natürlich müssen Sie diese Informationen mit Google teilen ...

julien
quelle
4
das würde mich über Besucher berichten lassen, aber meinen Inhalt nicht
direkt
0

ipinfodb.com ist gut, aber sie sind derzeit offline :(

Ich benutze das für meine API . Es ist toll für mein Wetter, aber ich weiß nicht, dass es seit gestern offline ist.

weltweite API
quelle
1
Danke für Ihre Antwort. Haben Sie bemerkt, dass @FMark diesen Service bereits in einer früheren Antwort in diesem Thread beschrieben hat?
whuber
Es ist keine Kritik an ipinfodb, aber ich hatte zuvor Probleme mit meinem Währungsumrechner und dem Währungs-API-Tool. Ich habe versucht, den Standort automatisch zu bestimmen und ihnen einen direkten Standort zuzuweisen, der mit der Währung in Verbindung steht Tage offline, oder einige Verbindungsfehler oder Geschichten viel Zeit laden, die Ihre Website-Leistung beeinträchtigen könnten, und Google möchte nicht, dass ...
Jarauzes
Infodb scheint großartig zu sein, habe es jetzt seit Monaten ausprobiert. Haben sie ein Limit? Ich meine Besucher pro Tag?
0

Wenn Sie ihnen Inhalte oder Anzeigen basierend auf ihrem geografischen Standort bereitstellen möchten, können Sie sich nicht darauf verlassen, dass die Standortdaten vom Gerät stammen. Selbst wenn sie Mobiltelefone haben, besteht eine hohe Wahrscheinlichkeit, dass sie GPS und WLAN deaktiviert haben, und sie müssen ihre Zustimmung geben, um den Standort zu teilen.

Es ist wie folgt: "Hey, kannst du mir deinen Standort mitteilen, damit ich dir Inhalte und Anzeigen geben kann, die meiner Meinung nach am ehesten mit deinem geografischen Standort zusammenhängen?" Antwort: "Nein! Gib mir die besten Inhalte und Anzeigen, die du da draußen hast."

Der einzige Weg, den Standort zu finden, ohne sie um Erlaubnis zu bitten, ist über ihre IP-Adresse. Sie können eine Datenbank auf Ihrem eigenen Server installieren und abfragen, um den Speicherort einer IP-Adresse zu ermitteln, oder um eine externe API zu verwenden, die Sie abfragen und die Ergebnisse abrufen müssen. Ich benutze ipgp geolocation api und arbeite großartig. ( http://www.ipgp.net/ip-address-geolocation-api/ )

Lucian
quelle