2012-12-10 115 views
10

有什麼方法可以使用任何Google API來獲取用戶的IP地理位置嗎?谷歌IP地理位置API

我認爲它會使用Google Analytics數據庫,它是唯一一個跟蹤我在城市級用戶的實際上是否正確的用戶(我可以測試的任何其他IP位置API都顯示了我的IP地址距離200公里遠我的真實位置Google顯示它距離200m!)

我想知道我的用戶的位置(在瀏覽器端並將它傳輸到我的服務器或服務器端)以服務於城市相關內容。但我不想讓我的用戶使用GPS這些煩人的彈出窗口,所以我想使用IP地址。

有什麼建議嗎?

+0

我發佈了一個答案[這裏](http://stackoverflow.com/a/40049684/426790),它使用[Google Maps Geolocation API](https://developers.google.com/maps/documentation/)地理位置/介紹)。 –

回答

10

如果你不想使用HTML5 style client-enabled GeoIP information,您將需要一個GeoIP的數據庫一樣MaxMind's GeoIP Lite database,這對於99%的用例來說是免費的,並且效果很好。任何其他更準確/詳細的信息服務將花費你很多錢。 MaxMind受到很多人的讚揚,並且在我個人的需求方面運作良好。它可以給你國家/地區/城市/緯度 - 經度 - 座標/大陸信息。

+0

嗯...我想我可以以任何方式使用Google的數據。我想我會使用IP數據庫併爲用戶提供「基於位置」的按鈕,以啓用HTML5地理位置。 是否有MaxMinds GeoIP DB的測試頁來測試我的IP的準確性? – keykiller91

+0

不是我所知道的。測試它的最好方法是下載並自己嘗試。 – Sherif

+1

Maxmind不是免費的也有一些許可協議:( –

0

您可以使用Google的地理編碼API獲取某個位置的實際地址,但該API所需的輸入是緯度和經度座標。

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

你需要找到和IP來定位API從一些其他供應商來獲得一個城市的水平,或保留選項,提示他們授予您對他們的地理位置訪問。

IPInfoDB做了很好的工作,透過IP自動縮小的位置,而無需使用輸入:

http://ipinfodb.com/ip_location_api.php

+0

不行!我實際上使用IPInfoDB,Unitymedia(本地ISP)的用戶無法使用基於位置的服務,因爲他們只將它們全部放入一個城市(甚至不會顯示在Google Analytics中) – keykiller91

+0

Unitymedia案例可能不是IPinfoDB的錯。如果它是一個特定的ISP,他們可能會使用運營商級NAT,這實際上意味着整個地區的人們都在使用一小部分IP地址,因此無法單獨通過IP地址來確定哪個會話在哪個地方。從雅虎的Jason Fesler檢查此套牌:http://meetings.apnic.net/__data/assets/file/0003/38298/fesler_yahoo_2011_post_ipv6_day_20min.pptx.pdf –