如何检测访客的国家/地区? [复制]
Posted
技术标签:
【中文标题】如何检测访客的国家/地区? [复制]【英文标题】:How to detect country / location of visitor? [duplicate] 【发布时间】:2011-05-09 21:41:48 【问题描述】:可能重复:Location detecting techniques for IP addresses
对于我们的网站,重要的是要准确了解我们的访问者来自哪个国家/地区。
我想我的问题的最佳答案是当前浏览器系统的简单地理位置功能,它只是询问用户是否允许网站查看他的地理位置:http://dev.w3.org/geo/api/spec-source.html
但我不想用问题打扰访问者,我很想自动检测访问者的位置(国家应该足够了。)
最好的方法是什么? - 什么 ip 数据库是最好的? - 浏览器标头是否足以检测到他的国家? (en-us en-en-ca?) 最好的解决方案是什么?
【问题讨论】:
语言≠地理位置。 这是谷歌排名最高的。与假设重复的问题相比,它被问得更好,标题也更好。 可能使用PECL扩展Geo IP Location php.net/manual/en/book.geoip.php 如果您使用 IP 地址位置,则无需用户权限即可获取他/她的位置。但如果他/她使用 *** 或代理,这将是不准确的。但是,如果您想要准确性,则需要使用 Geolocation。但是用户会知道您正在跟踪他/她的位置。到目前为止,没有任何方法可以在未经用户同意的情况下获得用户的精确位置。 【参考方案1】:NetImpact 提供免费的 API 用于通过 IP 进行地理定位查找,ProgrammableWeb 也有 roundup 的 GeoIP 查找提供程序。这会在您的应用程序完成 API 调用时产生少量延迟(除非您的应用程序可以使用非阻塞调用),但这是检测访问者原籍国侵入性最小的方式。
【讨论】:
NetImpact 效果很好,我刚试过。设置和运行只需 1 分钟。 NetImpact 不会加密您的密码,并会在您注册时以明文形式发送到您的电子邮箱。【参考方案2】:浏览器标题只是告诉您用户希望看到的语言。到日本出差的说西班牙语的人可能想查看西班牙语网站。
我认为您可以使用反向 IP 服务进行猜测,但如果是出于商业目的,我认为您必须要求用户告诉您。
与地理位置类似:计算机的物理位置可能与浏览网站的用户的需求相关,也可能不相关。
【讨论】:
日本的西班牙人是个例外。制作一个网站,甚至是商业网站,默认情况下在屏幕上提供更改选项的日语,将适合大多数访问者。 如果浏览器向您发送一个Accept-Language
标头,表明用户首先想要卡斯蒂利亚西班牙语,您为什么要覆盖它(如果您仍然可以使用该语言环境)?
在日本讲西班牙语的人也不例外。人们旅行。忽略语言设置(=用户想要的)并将语言推到他的脸上如果不是冒犯的话,也是非常烦人的。【参考方案3】:
在 Google Maps API 上查看此页面:http://code.google.com/apis/maps/documentation/javascript/basics.html#DetectingUserLocation
【讨论】:
不幸的是不再存在【参考方案4】:http://www.iplocationtools.com/samples.html 还提供了一组很好的 api 来执行此操作。我以前用过他们的系统,他们很可靠。
【讨论】:
以上是关于如何检测访客的国家/地区? [复制]的主要内容,如果未能解决你的问题,请参考以下文章