【发布时间】:2023-03-13 19:45:01
【问题描述】:
如果我没记错的话,谷歌会为地图网站执行此操作。我知道谷歌的移动地图应用程序可以确定粗略的位置(我假设使用某种手机信号塔查找),但我似乎记得在移动浏览器上查看时该网站有点接近当前位置。
有人知道如何/如果可能吗? IP 地址是否会根据塔或区域而变化(似乎他们会使用运营商常用的某种网关)?
【问题讨论】:
标签: http geolocation
如果我没记错的话,谷歌会为地图网站执行此操作。我知道谷歌的移动地图应用程序可以确定粗略的位置(我假设使用某种手机信号塔查找),但我似乎记得在移动浏览器上查看时该网站有点接近当前位置。
有人知道如何/如果可能吗? IP 地址是否会根据塔或区域而变化(似乎他们会使用运营商常用的某种网关)?
【问题讨论】:
标签: http geolocation
对于常规的 HTTP 请求,您唯一的选择是 GeoIP,但这只会给您国家和运营商带来的好处。
根据您使用的应用程序和设备,有多种地理定位选项,例如 iPhone 和 Android 浏览器支持 HTML5 地理 JavaScript 功能,因此您可以在页面中放置一些代码以向您发送位置。但是这些都涉及到一些客户端代码。
另一个选项涉及与网络进行交易,他们可以在请求中将电话号码作为附加标头提供给您,然后您可以通过运营商的 API 查询此号码,以从网络。然而,他们为此功能收取相当多的费用,而且精度可能从城市环境中的 100m 到农村地区的 35Km 不等。
【讨论】:
这是不可能的。
1.) 通过查询网络详细信息定位。
即使您通过查询网络或小区 ID 详细信息从已安装的应用程序中获得大致位置,它也不会那么可靠。您将无法根据该大致位置执行任何操作。
2.) 通过查询IP定位。
其次,在一个国家/地区,一家电信公司将拥有其地理定位的 GPRS 或 EDGE 网关,并且网络上的所有设备都通过该网关连接到互联网。所以基本上你不能依靠 IP 的位置细节,因为那将是网关的 IP,而不是设备的 IP(在 EDGE 的情况下)。
最终,如果您需要根据位置执行任何操作, 位置本身需要精确而不是近似。
【讨论】:
我们使用 Google Gears 有一段时间了,它可以在 Windows Mobile 5.0 及更高版本的设备上运行。谷歌最近停止了这项服务。雅虎现在已经开始了一个叫做雅虎火鹰的东西。感觉不错,还没看我还没有 Yahoo 帐户。
【讨论】:
您有关于此的 Google API 文档:
http://code.google.com/apis/gears/geolocation_network_protocol.html
希望对你有帮助...
【讨论】:
今天有点晚了,但没有提到的另一个选项是 MaxMind 地理 IP 查找。输入 IP 地址,它将为您提供位置。有提供城市级别准确性的免费服务(使用简单的 API)。还有一个收费的更准确的数据库。我在测试过程中注意到市区有多个塔/IP 地址,MaxMind 数据库知道这些。您将获得位置信息以及电信提供商。
【讨论】: