2013-08-04 65 views
6

我想要一個PHP腳本來解決城市名稱(沒有其他需要)與一個好的決議,只爲一個國家(伊朗)。由於我必須多次查詢數據庫,最好通過可下載的本地版本。 我已閱讀大部分職位的計算器上,自現在我已經測試過這些:可靠的城市級地理IP,免費的本地數據庫

  • GeoIP City從的MaxMind聽起來不錯,但不是免費的。
  • GeoIP從的MaxMind,具有較低的精度水平(約50-60%)
  • ip2country.net具有IP-2-城市數據庫,但不是免費的,不能解決伊朗城市名稱。
  • 我也嘗試了ipinfodb.com的DB#.Lite,它有一個API here沒有任何成功。問題是,它沒有檢測到許多城市名稱。我也試過hostip.info API,但它似乎太慢了。
  • 有一個free php class與本地數據庫,它只解析國名。
  • 我不知道是否有機會與this GeoIP plugin一起使用Piwik。如果有人知道這個想法,可以有想法。
  • ipinfo.io是另一項不能準確解析城市名稱的服務。
  • 我不知道是否有辦法使用谷歌分析解決城市名稱,因爲我認爲谷歌會比其他任何有關伊朗等國家的服務更好。

任何好主意,將非常感激。

+1

你有沒有試過https://developers.google.com/fusiontables/?你也可以捏數據從https://en.wikipedia.org/wiki/Category:Cities_in_Iran –

回答

4

這是一個艱難的,很難做到可靠。我已經給了它在過去一去,它出了這樣的事情

有支付服務,可以爲你做這個真的很快最後檢查。可能需要很長時間才能找到一些仍然不可靠的工作,因爲你根本沒有這些數據。我會認真考慮http://www.maxmind.com/en/city_per - 除非當然這是一個完全沒有商業的項目,$是不是。

如果你可以從IP表中獲得緯度和長度,即使沒有城市數據,那麼你可能想要使用這樣的東西來檢查最近的城市的Javascript是可選的 - Finding nearest listed (array?) city from known location

瀏覽器共享位置功能如何?

+0

感謝您的回答。我不認爲「瀏覽器共享位置功能」得到了所有主要瀏覽者的廣泛支持。可以? – Trix

+0

沒有。我只是把它扔在那裏 –

+0

我們正在使用IP2Location LITE,它是免費的並且支持郵政編碼。 –

0

如果基於瀏覽器的解決方案適用於您的用例,則可能需要查看MaxMind's GeoIP2 JavaScript API。它首先嚐試使用HTML5地理定位來定位用戶,如果失敗或不準確,它將恢復到MaxMind的GeoIP2城市數據(而不是GeoLite)。 MaxMind提供免費歸屬版本。

0

有時我們需要使用本地Geo-IP數據庫來代替Web服務來實現特定目的。這是我的經驗: 我下載了數據庫表格https://db-ip.com。我搜尋了很多,最後我發現這個更可靠。但還有兩個問題:

  • 1-「IP地址到城市」數據庫太大,無法在託管MYSQL數據庫上傳,因爲它傳遞超時限制。
  • 2-數據庫是基於http://lite.ip2location.com的IP地址比較數據庫是IP編號的基礎。

因此,我開發了一個簡單的.NET應用程序來解決這些問題。 該解決方案可以從這裏下載:https://github.com/atoosi/IP2Location-Database-Luncher

相關問題