根据IP识别用户的位置

时间:2011-04-10 09:11:01

标签: php javascript localization location ip

我知道如何使用IP号确定用户的位置。但是,我想知道是否有更精确的技术。我见过一些应用程序,例如。 Google MAPS要求用户获取其位置的许可。有某种这样的API吗?我错过了什么吗?

非常感谢!

5 个答案:

答案 0 :(得分:3)

我所知道的唯一通用,更精确的方法是HTML 5 geolocation API。该API有时可以通过扫描附近的无线网络及其ID来获取更精确的位置,或者查询连接到计算机的GPS设备(或者像@Pascal所说,内置于移动设备中的GPS设备,如iPhone)。

但这仅适用于计算机具有正确硬件且需要用户明确同意的情况。

对于无用户同意的服务器端地理位置,基于IP的方法仍然是您可以做到的最佳方法。

请参阅此问题,了解其工作原理:About Geolocation in HTML 5

答案 1 :(得分:1)

那将是geolocation API

答案 2 :(得分:1)

请参阅Geolocation APIDive into HTML 5

的匹配部分

答案 3 :(得分:1)

某些设备(通常是智能手机)有一个GPS - 这意味着相当精确的位置 - 或者可以使用wifi / cell-towers / ...

您无法在服务器上获取该位置(它不是由浏览器发送的),但您可以从Javascript 获取它(然后,使用某些Ajax将其发送到服务器)

对于某些文档,您可以查看:

答案 4 :(得分:1)

似乎是HTML5中的GeoLocation问题http://ipgeo5.com/

昨天我在蒙特利尔工作,完美地确定了我目前的位置,最近的30英尺(估计)。运行Windows XP,Chrome 14.0.835。

今天,我在加拿大安大略省一个小镇的妈妈家里,发现了这个错误。


您当前的位置 我们估计你位于 注意:未定义的属性:第29行的/var/www/ipgeo5.com/pages/city.php中的stdClass :: $ AdministrativeArea

注意:尝试在第29行的/var/www/ipgeo5.com/pages/city.php中获取非对象的属性  ,,加拿大使用HTML 5 Geolocation技术。 你的位置:

注意:未定义的属性:第29行的/var/www/ipgeo5.com/pages/city.php中的stdClass :: $ AdministrativeArea

注意:尝试在第29行的/var/www/ipgeo5.com/pages/city.php中获取非对象的属性

,,,加拿大

所以我猜这不是100%有效!

因此需要使用IP2Location数据库来确定位置的计划B.

谢谢!

Michel,蒙特利尔,加拿大