网站如何确定你的位置

ProxyCompass 知识库

网站如何确定你的位置

网站可以根据 IP 地址估计位置、向设备请求位置,或使用此前访问时保存的信息,也可以显示你自行选择的国家。这些来源描述不同事物:连接、设备、你的偏好,以及正在使用的账户。

选择代理位置时,你选择的是网站将看到的 IP 地址所属国家。浏览器仍会发送其他信息。要理解某个网站上的结果,了解这些信息的含义及其如何到达网站,会很有帮助。

一位位于印度的客户通过德国代理,在德国商店中挑选运动鞋。商店看到德国 IP,同时也收到 Cookie、时区,以及经许可共享的设备位置。

为什么德国 IP 会打开印度店面?

假设一位位于印度的客户通过标为德国的代理打开网上商店。在本例中,商店也将该 IP 地址识别为德国。但页面顶部的国家选择器仍显示印度,商品目录也是向印度客户提供的版本。

在此前访问时,客户曾在该菜单中选择印度。商店保存了这一选择,并在客户返回时再次使用。它掌握了两项有用信息:当前请求来自它关联到德国的 IP,而客户此前要求按印度市场购物。保留已选市场,是这家商店有意采用的行为。

因此,IP 所属国家与所选店面回答不同问题。前者涉及请求从哪个地址到达,后者控制购物体验。同样的区别也适用于天气网站中选择的城市,或酒店搜索中填写的目的地。网站可以展示某个地方的信息,而不必认定访客实际身处那里。

网站会收到什么信息?

处理页面请求的服务器会看到连接的 IP 地址。对于通过代理发送的请求,这就是代理连接该服务时使用的地址。IP 地理位置数据将该地址与国家或区域关联起来。网站本身,或代其处理请求的服务,都可以执行这一查询。

请求还可能包含语言偏好,以及此前为该网站保存的 Cookie。页面加载后,其 JavaScript 可以读取更多浏览器设置,并通过浏览器的权限系统请求设备位置。登录则又建立了一条信息关联:网站可以读取账户保存的资料。

信息来源网站可用于什么
与 IP 关联的国家连接,以及网站的 IP 地理位置数据。选择初始地区页面,或估计大致区域。
设备位置经许可向浏览器请求的位置估计。查找附近地点,或在地图上标出访客位置。
保存的国家或城市浏览器中的网站数据,或账户中保存的设置。恢复此前访问时选择的地区。
语言和时区通过请求或页面脚本可获取的浏览器设置。选择支持的语言,并显示当地时间。
配送地址或搜索目的地客户提供的信息。检查能否配送,或在指定区域内搜索。

网站会使用实现其功能所需的信息。简单页面可能只依赖 IP 地址,而具有账户、区域商品目录和配送选项的商店,有理由使用多个来源。并不是每个网站都必须收集表中的每一项信息。

网站如何记住所选国家?

Cookie 是浏览器保存的小段数据,之后向相关网站发送请求时会一并发送。Cookie 可以直接包含国家偏好,也可以包含标识符,让服务器据此找到保存的会话及其设置。localStorage 等其他浏览器存储也可以保存偏好,供网站脚本读取。

更换代理会改变后续请求使用的连接,但不会删除这些已保存的值。在购物示例中,来自德国 IP 的请求可以携带原来的会话 Cookie,让商店恢复印度这一选择。

账户设置可以跨浏览器和设备保留。家庭地址、配送地址或偏好地区可能保存在网站服务器上。登录后,这些资料便可再次使用。清除本地网站数据,不会删除账户中的记录。

打开的链接也可能选择地区。商店可能为每个市场设置独立域名或路径。点击印度店面的链接,可能立即打开该版本。在这种情况下,所选 URL 已经告诉商店你请求的是哪个版本。

之前的活动也可能产生影响。例如,Google 的文档说明,其在估计与搜索相关的位置时,会使用 IP 信息、设备位置、保存的家庭和工作地址,以及先前活动。这描述的是 Google 的服务,并不意味着任意网站都能读取你的全部浏览历史。

浏览器如何共享设备位置?

Geolocation API 是一种浏览器功能,页面可以通过它请求设备地理位置的估计值。在普通公共网站中,它需要安全上下文,通常为 HTTPS,并要求获得位置权限。结果包括纬度、经度、准确性估计,以及获取位置的时间。如果页面允许,获准的请求可以使用缓存位置,因此打开地图不一定会产生新测量。

浏览器和设备的位置服务决定如何获取该估计。可用来源包括 GPS、附近 Wi-Fi 网络、移动网络信息和 IP 信息。因此,没有 GPS 的笔记本电脑也能提供位置。该 API 不要求使用某一特定来源,也不会向页面说明使用了哪个来源。浏览器返回的坐标,不应自动称为 GPS 坐标或精确物理位置。

假设印度的客户允许商店获取设备位置,浏览器返回印度境内的坐标。页面可以通过德国代理将这些坐标发送给商店。此时,请求携带两个不同事实:它来自德国 IP 地址,内容中则包含印度的位置。代理负责传输这些信息,不会把提供的坐标变成德国坐标。

每次访问不一定都会出现新的权限提示。浏览器可能仍保留此前授予的有效权限。你可以在浏览器设置中查看该网站的位置权限;能否访问还可能取决于操作系统授予浏览器的权限。

在持续拒绝访问的期间,拒绝该权限会阻止网站通过此 API 获取新位置。基于 IP 的估计,以及网站已经保存的信息,仍是独立来源。这说明了为什么即使你没有允许请求设备位置,网站仍能显示某个位置。

语言和时区会告诉网站什么?

浏览器可以在 Accept-Language 请求头中发送偏好语言。页面脚本也可以读取语言偏好。这些设置帮助网站选择访客能够理解的语言,不需要设备地理定位所用的权限。

使用英文界面的浏览器,即使用户在国家之间旅行或使用德国代理,也可以保持英文。如果德国店面支持英语,它可以显示英文,同时仍将连接视为德国。即使是 en-US 这样的偏好,标识的也是语言变体,而不是已经核实的美国位置。

JavaScript 还可以读取浏览器提供的时区,例如通过 Intl.DateTimeFormat().resolvedOptions().timeZone。网站可能据此用访客的当地时间显示预约。该值通常反映浏览器所在环境,时区可以自动设置,也可以手动配置。

时区名称与 UTC 偏移量是不同的值。偏移量说明特定时刻与 UTC 的时差,多个国家可以共用同一偏移量。两者都不能单独确定设备的物理位置。网站可以将语言、时区与其他信息比较,但它们不同于代理国家,本身并不说明另一个 IP 地址已被泄露。

网站能得知另一个 IP 地址吗?

代理设置只适用于浏览器经该代理发送的流量,不能证明浏览器或设备的所有连接都走同一路径。WebRTC 是用于实时音频、视频和数据交换的浏览器技术,它在准备连接时可以发现地址。如果浏览器规则和网络配置允许直接检查,就可能暴露另一个公网 IP,例如客户互联网连接的地址。

结果取决于浏览器的隐私规则和网络配置。WebRTC 并不是让每个网站都能还原客户公网 IP 的通用方法。192.168.1.10 这类私有本地地址又是另一种结果:许多互不相关的局域网中都可以存在相同地址,因此它本身不能识别国家。

DNS 将域名转换为网络地址。专门的 DNS 测试可以识别处理其查询的解析器。解析器的国家描述的是该服务器,它可能远离客户,也远离代理。有些解析器还通过可选的 EDNS Client Subnet 功能,发送发起 DNS 请求的客户端 IP 的一部分。因此,看到其他国家的解析器,与暴露客户端网络信息,是不同的结果。

这些机制涉及普通页面请求之外可获得的网络信息。当测试显示意外的公网地址或其他网络数据时,应进一步调查。页面显示错误语言,不足以证明发生了这类连接。

网站会优先采用哪些信息?

答案取决于正在作出什么判断。地图的“附近”功能可以使用经许可获取的设备位置;商店可以保留回访客户选择的国家;配送计算需要包裹目的地。这些功能可以在同一次访问中运行,并使用不同信息。

不存在 GPS 一定优先于 IP,或账户国家一定优先于两者的通用规则。网站会决定各项功能有哪些可用且相关的来源。它可能使用一个来源,在不可用时改用另一个,也可能比较多个来源。

结账环节特别能体现这一区别。客户可以浏览德国商品目录,再填写印度配送地址。商店可能重新计算配送费用、改变可购商品,或应用针对该目的地的规则。例如,Shopify 文档说明,配送地址决定客户结账时的最终市场体验。这是电商系统的规则,不是对代理 IP 的新测量。

是否允许访问又是另一种判断。服务可以正确识别国家,却仍因账户、网络或可用性规则拒绝某项操作。一般性的拒绝响应,不能说明是哪条信息导致的。相关证据应是服务给出的具体解释,而不仅是出现了拒绝这一事实。

如何判断什么影响了结果?

先明确检查的具体功能:连接被归入的国家、区域商品目录、附近搜索结果、语言,还是配送可用性。每项功能都可能依赖不同信息。进行有用比较时,应保持代理 IP 和页面地址相同,每次只改变一个相关条件。记录每次测试使用的地址,而不要仅依赖代理设置未变;否则,轮换可能在你改变待测设置的同时也改变 IP。

  1. 查看网站自身的设置。检查国家选择器、搜索区域、配送目的地,以及 URL 中的地区版本。界面中可见的选择可能已经解释了结果。
  2. 比较回访与全新未登录会话。使用不包含该网站存储数据的独立测试环境,有助于检查保存状态的影响。首先确认该环境使用相同代理 IP。新的无痕会话会使用与普通浏览分开的站点数据,但不会自动改变连接或每一项浏览器设置。
  3. 检查登录后发生了什么变化。如果原来的地区随账户恢复,应查看账户的地区和地址设置。这种行为指向账户相关信息,但并未揭示网站完整的判断过程。
  4. 当功能需要当前位置时,检查设备位置。查看网站的位置权限,以及它对位置估计来源提供的说明。附近结果与保存的配送国家,需要不同的检查。

在购物示例中,在商店国家菜单里选择德国,可以处理已保存的店面偏好。如果任务是安排配送到印度,印度目的地仍然相关。如果网站明确将代理 IP 归入错误国家,问题才是它对该地址使用的地理位置数据。明确需要哪个结果,才能确定下一步行动。

返回知识库