2013-08-04 107 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

相关问题