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?
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?
Antworten:
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>
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.
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.
Sie können diese URL verwenden und eine IP-Adresse übergeben. http://api.hostip.info/get_html.php?ip=84.32.32.44
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.
Google Analytics bietet grundlegende Karten und Statistiken zum Standort Ihres Besuchers. Natürlich müssen Sie diese Informationen mit Google teilen ...
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.
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/ )