Geolocation 如何找到用户';网站访问期间的位置?

Geolocation 如何找到用户';网站访问期间的位置?,geolocation,location,Geolocation,Location,因此,当用户登录到我的网站主页时,我希望能够找到他们的位置(即使只是城市/城镇级别)。我认为这不是不可能的,因为谷歌似乎在你登录他们的主页时就这样做了,它似乎会将你的搜索结果调整到你的区域,等等 要做到这一点,我需要研究什么?您需要使用IP geo/co-location API,如和许多其他API。拥有只需注册的免费服务 您还可以下载包含地理代码信息的数据库。这将工作到一定的分辨率,但db代表一个静态快照,随着时间的推移,现实可能会发生重大变化。文件,可以让您开始在本地数据库方面的事情。CSV

因此,当用户登录到我的网站主页时,我希望能够找到他们的位置(即使只是城市/城镇级别)。我认为这不是不可能的,因为谷歌似乎在你登录他们的主页时就这样做了,它似乎会将你的搜索结果调整到你的区域,等等


要做到这一点,我需要研究什么?

您需要使用IP geo/co-location API,如和许多其他API。拥有只需注册的免费服务

您还可以下载包含地理代码信息的数据库。这将工作到一定的分辨率,但db代表一个静态快照,随着时间的推移,现实可能会发生重大变化。文件,可以让您开始在本地数据库方面的事情。CSV文件(有点旧,上次更新于2009年8月)包含59000个条目。

您可以使用定位服务,它们具有不同的准确度。也可能有其他IP位置数据库提供商


另一种选择是尝试使用HTML5定位服务,如in和。

您可以a)使用在线服务查找位置-许多都有api,或者b)网络上有许多数据库可供下载。根据您需要的解决方案,您可能需要付费。但国家决议当然是免费的。尝试用谷歌搜索“geo ip”或类似功能。

如果你不在乎超高精度,也不想让用户收到请求允许访问其位置的警报,那么你可以使用类似的功能。我已经编写了一个小型jQuery插件,它利用了这一点。看。也支持
jsonp
请求,因此您可以从任何网站使用它,包括静态纯html网站。

您可以在HTML5中使用
navigator.geolocation.getCurrentPosition
。它将合理地跨平台,您可以将其构建到网页中,并向数据库报告。 看




由于我面临的一些问题,我想添加另一个解决方案。所有前面的答案都很有效。但是,如果要使用HTML地理位置API,则必须向用户请求位置许可。IPinfo工作得很好,但一些adblock(如ublock)会阻止来自客户端的API命中


如果您可以将DNS管理器更改为CLoudflare,则可以使用CLoudflare IP地理位置。你可以参考答案

我会推荐保罗的答案,但我想这是你的决定。当互联网上有一半的人不支持HTML5时,依赖HTML5是危险的。链接的答案本身并不能解决这个问题,所以我只提到了需要做的额外步骤。