在没有像 ipinfo 这样的第三方服务的情况下检测 ip 位置

Detect ip location without third services like ipinfo

我在做一个网站,需要注册用户的ip,通过ip地址按经纬度做一个"geolocation"排序

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

正如我在主题标题中所写,我不想使用第三方服务。也许你可以给我一些建议或者我在网上找不到的东西。

感谢您的回复!

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

下面有2个方案可以解决您的问题。

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

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