检测IP位置没有第三个服务,如ipinfo

问题描述:

我正在做一个网站,我需要注册用户的IP地址作出一种“地理位置”的经度和纬度通过IP地址。检测IP位置没有第三个服务,如ipinfo

其实我使用php的geoip库和maxmind geoipcity.dat(http://php.net/manual/en/book.geoip.php)。 我看到,对于60/70%这种方法不起作用,我的意思是它没有找到经度和纬度和城市,但只有国家。

我不想使用第三种服务,就像我在主题标题中写的那样。也许你可以给我一些建议或者我在网络上找不到的东西。

谢谢你的回复!

除非您可以访问最终用户的GPS数据,否则您必须使用第三方服务将IP地址或WIFI MAC地址转换为经度和纬度。

以下是2项解决您的问题的建议。

  1. 请求最终用户通过HTML 5分享自己的GPS位置在这种情况下,网络浏览器将共享坐标给您(视情况而定)之前请求从最终用户授权。您可以访问http://ipgeo5.com获取示例代码。

  2. 更改另一个地理位置数据库。如果您关注覆盖范围,则可以评估其他数据库提供商。您可以访问http://lite.ip2location.com并使用他们的IP2Location LITE数据库,看看它是否符合您的要求。

+0

真的很感谢你。我会尝试ip2location数据库。 但我有一个问题。从第一种方式(ipgeo)我可以得到用户的IP? 我用经度和纬度上传了一个sql表中的所有城市。 我的想法是创建一个查询,创建一个关于用户的经度和纬度的半径,并获得最近的城市。这是一个好主意还是坏主意? – Stackedo

+0

更新:我试过ip2location(http://www.ip2location.com/developers/php),它的效果真的不错! 更新2:这是一个DB9演示BIN数据库。您可以评估IP地址从0.0.0.0到99.255.255.255,只支付我解决? x' – Stackedo

+0

@stackedo您应该从http://lite.ip2location.com注册免费的IP2Location LITE并下载完整的DB9 BIN文件。为了演示目的,开发人员区域中的示例文件不完整。 –