科技爱好者周刊(第 237 期):真实方位是如何暴露的?

作者: 阮一峰

日期: 2022年12月30日

这里记录每周值得分享的科技内容,周五发布。

封面图

12月23日,中国最西端的机场,新疆塔什库尔干机场开通运营,迎来首架航班。它是帕米尔高原(古人说的"葱岭")的首个机场,就建在冰川脚下。(via

本周话题:真实方位是如何暴露的?

很多时候,开发者需要知道用户的地理方位。

最简单的方法,就是查看用户的 IP 地址,它能够确定地理方位。

如果你不想暴露真实方位,需要使用技术手段,伪装自己的 IP 地址。

但是,这个事情不是那么简单,真实方位其实很难隐藏。

上周,Hacker News 论坛上,有人发帖,说他想不通,谷歌怎么知道他的位置。

他从美国去墨西哥出差,为了使用美国的银行服务,全程都用了 VPN,伪装后的 IP 地址是在美国。按理说,服务器根据他的 IP 地址,只会认为他在美国华盛顿州。

但是,等他回到美国,打开家里的电脑。(注意,是家里的电脑,从来没有离开过美国。)浏览器显示,他的位置在墨西哥,推送给他的广告都是西班牙语。

他困惑不解,谷歌怎么会知道,我的真实方位是在墨西哥呢?我没有暴露真实 IP 地址啊。

帖子的下面就有人指点他了:谷歌判断你的地理方位,不仅仅看 IP 地址,更重要的看你的路由器的 MAC 地址。

一般来说,路由器很少改变地理方位,买来后放在某个地方,它就会一直放在那里。很少有人带着路由器一起出门。

这意味着,只要知道你使用哪个路由器,根据路由器的方位,就可以推断出你的真实方位。

每个路由器的 MAC 地址都是独一无二,而且固定不变。因此,对于互联网公司来说,只要建一个数据库,收集路由器的 MAC 地址和所在地方位,就能知道用户的真实方位了。

谷歌、苹果和很多互联网公司都是这样干的。安卓系统和 Chrome 浏览器都有这种机制,获取用户正在使用的路由器 MAC 地址,然后调用用户机器的 GPS 判断方位,再把这些数据发给服务器。如果本机没有 GPS 功能,就根据 IP 地址推断方位。

因为将你的 IP 地址与路由器 MAC 地址相匹配,不是实时的,会有一个时间差,所以有时候你出门旅行,方位变了,但是谷歌还会显示以前的方位,要过一段时间以后才会纠正。

如果你真的想避免暴露自己的方位,需要使用剥离了谷歌服务的安卓系统(比如 GrapheneOS),或者剥离了谷歌服务的 Chrome 浏览器(即 Chromium)。

问题是很多 App 都偷偷收集这些数据,谷歌、苹果这样的大公司,至少是明着干,可能还有办法关掉。小公司是偷偷做,根本不告诉用户,完全防不胜防。

所以,在互联网上,想要隐藏自己的方位,其实非常难。如果电信服务商、操作系统、应用软件都设置了追踪机制,它们联合起来,我觉得几乎没有可能隐藏自己。

活动

1、Flutter 的探索与实践

跨平台解决方案之中,Flutter 无疑是最受瞩目的。它把图形库打包进 App,真正做到所有平台体验一致。

今年5月,谷歌正式发布 Flutter 3.0 版,可以一个代码库支持 iOS、Android、Web、Windows、macOS、Linux 六大平台,这是目前最强大的。

这里有一个活动消息,想采用 Flutter 的同学可以关注。两周后的1月14日(星期六)下午2点,字节跳动工程师分享 Flutter 开发实践。

字节跳动目前有超过70款 App 使用 Flutter 开发,内部开发者累计超过600位,向官方仓库提交合并了大量 PR。

本次活动以 《深度解析 Flutter 技术探索与实践》 为主题,一共安排了4个演讲,分享他们的一些做法,以及对于 Flutter 开发的体会和认识。点击链接或扫描海报二维码,了解活动详情,并报名预约直播。活动主办者准备了精美的礼品福利抽奖,欢迎报名参加。

科技动态

1、浮动城市

国外一家游艇公司,提出一个设想,要造一个像海龟一样的浮动城市。

它实际上是一艘巨大的船,做成海龟造型,长550米,宽600米。上面是一个小镇,有各种建筑物。

游艇公司通过出售船上的房产和经营酒店获利。这艘船定期在海上航行,停泊各国的港口,船上游客可以周游世界。

但是,这家游艇公司没有透露:这艘船的动力从何而来?怎么保证船上的物资供应?哪里去找能够停泊它的巨大港口?......

这大概率就是一个国外的"PPT 项目",不过要是真能实现海上的浮动城市,可能具有重大意义。

2、纽约的人脸识别系统

麦迪逊广场花园是纽约的著名体育馆,很多重要的活动都在那里举办。

它归多兰家族所有,老板叫詹姆斯·L·多兰 (James L. Dolan)。

去年,多兰家族被告了。结果,对方委托的律师事务所的所有律师,都被列入了多兰家族的黑名单。

最近,一个律师去麦迪逊广场花园看比赛,入口处的人脸识别系统(下图)认出了他。保安就把他赶出去了,理由是黑名单里的人都不得进入该体育馆。

这件事在纽约闹得沸沸扬扬,律师准备起诉多兰家族滥用人脸识别,打压反对他们的人。不过,麦迪逊广场花园是私人财产,管理者有权拟定黑名单,这个官司并不好打。

这件事的启示是,虽然美国政府口口声声强烈反对人脸识别侵犯个人隐私,但是实际上,人脸识别在美国一直在被广泛使用。

3、11叶螺旋桨

一家德国公司宣布,成功完成了世界首个11叶螺旋桨的试飞。

飞机螺旋桨的作用,是将发动机的能量转化为推力。叶片的面积越大,推力就越大,所以叶片的宽度和长度比数量更重要。这也是为什么今天很多螺旋桨只有两叶的原因。

但是,如果发动机的功率特别大,而叶片无法做得更大的时候,就可以通过增加叶片数量提升推力。

2019年,这家德国公司已经创造了9叶螺旋桨的世界纪录。所以今年他们挑战11叶螺旋桨。

4、月球建筑的施工系统

美国宇航局 NASA 最近向一家建筑公司拨款5720万美元,要后者开发一套可以在月球建造人类建筑物的施工系统。

这个项目的目标是找到可行的方法,在月球表面上建造飞船着陆区、人类生活区、道路等基础设施,以及可以防止宇宙辐射、热量和微陨石的建筑物。

目前的方案是使用月球土壤,进行 3D 打印。这将是人类第一次在另一个天体上进行建筑工程。美国宇航局还希望,这套方案未来能够移植到火星。

文章

1、CSS 父元素选择器:has()(英文)

CSS 以前只有子元素选择器,但是现在有了伪类:has(),可以通过子元素选中父元素。

2、浏览器插件 Tango(英文)

CSS Tricks 的创始人 Chris Coyier 的文章,介绍浏览器插件 Tango 快速生成操作指南,效果比产品文档好得多。

3、curl 如何构造 URL 查询参数(英文)

命令行工具 curl 新引入了一个参数--url-query,用来构造 URL 参数。作者介绍它跟以前的类似参数有什么区别。

4、Rust 命令行工具总结(英文)

最近有一种趋势,就是使用 Rust 语言重写传统的命令行工具,比如lsd替代lsbat替代cat等等。本文介绍这些新引入的工具。

5、Windows 10 的 Intel CPU 为什么表现不佳(英文)

作者发现,自己的 Windows 10 电脑自从用了英特尔第12代酷睿 CPU,构建速度很慢,16个核心里面只有4个在跑,这是为什么?

6、Maui 项目介绍(英文)

Nitrux 是一个新的 Linux 发行版,创造了 Maui Kit 框架,用于编写应用程序。

Mauri 框架基于 Qt,写出来的应用程序可以跨平台,同时运行于 PC 和手机,并且非常美观易用。

7、巧用版本依赖解决数独(英文)

版本管理器有一套处理版本依赖关系的语法,作者突发奇想,能不能用 Python 版本管理器 Poetry 来解决数独问题?

81个方格可以看作81个软件包,每个包有9个版本(即1-9)。只要给出约束条件,版本管理器会计算应该使用哪个版本,从而解出数独。

8、"加密猫"面临崩溃(英文)

加密猫(CryptoKitties)是第一个基于区块链(以太坊)的大型游戏,2017年发布。

当年,它曾经轰动一时,甚至造成了以太坊的价格飙升,但是现在已经沉寂了,面临崩溃。这篇报道就分析,为什么基于区块链的游戏可能都不可行。

工具

1、MiniSearch

一个 JS 的全文搜索库,支持模糊搜索等很多功能。

2、YouChat

搜索引擎 You.com 引入了类似 ChatGPT 的 AI 聊天工具,可以无限制使用。

我试了几个中文问题,回答都是错的,现阶段看来只能当作聊天玩具。

3、Amazing AI

著名程序员 Sindre Sorhus 的作品,将 AI 绘图引擎 Stable Diffusion 搬到了 Mac 电脑(只支持 M1/M2 CPU)。

这里另有一个类似的 Mac 应用 Gauss

4、Le Git Graph

Chrome 浏览器插件,在 GitHub 页面显示各个提交之间的图形关系。

5、知了

一个开源的 Web 音乐服务,需要自己架设在服务器或本地,可供多人使用,参见介绍。(@mebtte 投稿

6、Linen

一个社区软件,目标是成为 Slack 和 Discord 的替代品,目前只有 Web 版。

7、V2EX APP

V2ex 论坛的第三方客户端,支持 iOS 和安卓。(@alaskasquirrel 投稿)

8、创业公司页面设计

这个页面提供各种业务组件(公司图片、FAQ、联系方式等等),让你快速搭建一个创业公司网站的页面,查看效果。

9、DevDash

命令行终端的仪表盘生成工具,高度可配置,既可以查看本机系统状况,也可以查看外部服务的状况。

资源

1、OpenVerse

一个图片和音频的搜索引擎,据说包含超过6亿件作品,都可以自由使用,不用付费。

2、中国地铁信息概览

这个网站可视化显示全国各个城市的地铁概况,包括每日的客流量。(@xcuYao 投稿)

3、Green Wall

这个网站可以查看某个 GitHub 用户的历年活动日历,代码开源。(@Codennnn 投稿)

4、Codenews

一个国人分享技术工具的社区。(@jqsl2012 投稿)

5、ChatBCG

这个网站输入关键词,自动生成 PPT 模板,号称使用 AI 把内容要点都填写好了(下图)。

它好像可以理解中文输入,但是生成的 PPT 是英文。以后,PPT 都是 AI 生成的,就更没有价值了。

图片

1、密西西比河流域

密西西比河是美国最长的河流。它有三条主要的支流,流经美国32个州和加拿大两个省。流域面积高达320万平方公里。

上图就是密西西比河流域图,深蓝色的线条就是密西西比河。大家可以看看,它的流域有多大,对美国有多重要。

密西西比河的长度略短于长江,但是流域面积是长江的1.8倍。

2、星球大战油画

一位土耳其艺术家,专门创作以电影《星球大战》为主题的油画。

科幻题材画成油画,感觉很有艺术感。

文摘

1、创业是什么

创业就像游乐场的掷飞镖游戏。

普通人家的孩子买得起一掷。大部分人脱靶了。一些人中靶,赢得了小奖品。极少数人正中靶心,获得大奖。这被当作白手起家的"美国梦"继续存在的证据。

富人家的孩子买得起很多掷。如果愿意,他们可以一遍又一遍地尝试,直到中靶并感觉良好为止。有些人一直坚持下去,直到命中靶心,然后他们就会发表演讲或写博客,介绍创业心得和努力工作的价值。

穷人家的孩子不去游乐场。他们要工作。

2、蓝牙仍然令人痛苦

蓝牙协议诞生已经20年了,从智能手机到冰箱再到灯泡,越来越多的产品通过它进行无线连接。

但是,这个协议依然有着各种令人头痛的问题,对于消费者来说,并不好用。

蓝牙的最大优点是低功耗,缺点就是随之而来的一些物理限制:连接距离短,带宽小,容易受干扰,不安全。

蓝牙信号使用非专有的无线频段进行通信,这有利于它的开发和推广,但也意味着必须与大量使用同样频段的其他电子产品共享和竞争信号。这会产生干扰,从而破坏通信。

蓝牙的安全性也是一个问题。当你安装一个蓝牙扬声器,半径15米以内的任何人都能看到并连接它。这可能会带来安全风险。

但是,由于物联网和智能设备的广泛采用,不同设备的近距离通信越来越重要。蓝牙可以作为粘合剂,将所有设备连接在一起,依然是目前的最佳选择。

可以预料,消费者未来一方面不得不忍受蓝牙的各种缺点,另一方面又不得不依赖它,每天在日常生活中使用它。

言论

1、

摩托车的危险性远高于汽车,前者的驾驶员死亡率是后者的27倍。最危险的事情莫过于夜间骑摩托车,占所有死亡事故的近一半。

-- 《摩托车灯的新设计减少事故》

2、

大多数人都喜欢机场,因为我们去机场,往往是因为一些令人高兴和兴奋的事情。

-- 一位国外 Youtuber

3、

去年,NFT 最疯狂的时候,我从亚马逊买了一大堆 NFT 书籍,想搞清楚它到底是什么。

我很快发现,所有这些书解释 NFT 为什么有价值,都说是因为稀缺性会产生价值。我觉得,这完全是胡说八道,我儿子的涂鸦就很稀缺,但根本不会有人想购买它们。

-- 《假书》

4、

没有什么比制造电子产品的原材料更能产生废土和矿渣了。因为电子产品所需的材料必须非常纯净,为了达到这种纯度,会产生大量废弃物。

传统采矿的矿渣可占矿石的90%至99%,用于电子产品的采矿矿渣通常是99.9%或更高。

-- 《采矿业的有毒矿渣》

5、

因为有了互联网,现在最聪明的年轻人比以往任何时候都聪明。

-- David Perell

历史上的本周

2021年(第189期):下一个内卷的行业

2020年(第139期):生物学的可怕进展

2019年(第87期):新人要为团队写文档

2018年(第36期):程序员将来会不会过剩?

说明

周刊每周五发布在我的个人网站和微信公众号《阮一峰的网络日志》,欢迎订阅。

周刊是开源的,自由使用,仓库在 GitHub: ruanyf/weekly,投稿请到仓库提交 issue。我们还开设了《谁在招人?》服务,欢迎发布或查看程序员招聘信息。

商业合作和产品推广,请邮件联系我(Email: [email protected] )。

鸣谢

文档和笔记服务 FlowUs 对周刊提供支持,非常感谢。

FlowUS 是新一代知识管理与协作平台,集成了"文档+表格+网盘",具有写文档、制作主页、管理数据、存储文件等多种用途。

周刊开设了 FlowUs 专栏,欢迎大家也去开设自己的专栏和页面。

(完)

留言(46条)

我好奇谷歌是通过什么技术手段拿到用户家里的路由器的MAC地址的????

早上好啊!阮老师

在我浅显的认知看来,NFT跟庞氏骗局没什么本质区别

有软件可以修改MAC地址,那MAC地址是不是就有可能重复了

阮老师新年好呀

引用lelele的发言:

我好奇谷歌是通过什么技术手段拿到用户家里的路由器的MAC地址的????

拿到用户路由器 MAC 地址不可能吧。原帖里有讨论,拿的应该是 Wi-Fi 的 SSID

那个所谓的浮动城市感觉还不如凡尔纳《机器岛》里面的标准岛,无论是规模还是可行性。

从那个地铁客流量感觉能看出口罩的恢复情况

如何拿到 MAC 地址呢,每次只能拿到上一个 hop 的 MAC 地址,用户的源 MAC 地址是拿不到的。

引用lelele的发言:

我好奇谷歌是通过什么技术手段拿到用户家里的路由器的MAC地址的????

是因为在数据的传输中,MAC地址已经被封装在了数据链路层首部了,通过ARP协议还是可以拿到MAC地址这样么?

普通人是通过隐藏自己与其他人的区别,来保护自身的。只要数量足够,就可以掩人耳目。

Flutter 会取代 QT 吗 ?

NFT如果从“去信任的权益凭证”角度看,还是有一定用处。例如 POAP

引用lelele的发言:

我好奇谷歌是通过什么技术手段拿到用户家里的路由器的MAC地址的????

如果你的一个有访问网络权限的常用app是谷歌做的,比如chrome那么他拿到路由器的mac地址就很正常,至于常用操作系统比如windows、Android、IOS那就更简单了

历史上的本周感觉就发生在昨天前天的似的,感觉时间过的好快

引用lelele的发言:

我好奇谷歌是通过什么技术手段拿到用户家里的路由器的MAC地址的????

我也这么认为,sandbox中的浏览器应该是没有这种权限的。

引用spongecaptain的发言:

如何拿到 MAC 地址呢,每次只能拿到上一个 hop 的 MAC 地址,用户的源 MAC 地址是拿不到的。

应该不是server那边拿,而是手机连到wifi以后就偷偷把你路由器的mac记下来,同时把GPS数据一块上传回了google

投飞镖这个例子太真实了????

那个飞机螺旋桨的动力来源,是不是来自于发动机驱使螺旋桨旋转,因为高速运转,物体表面压强变小,与空气产生压强差 ,从而产生动力?

我想知道阮先生阳过了没,,

月球建筑的施工系统

虽然这几年人类走的很辛苦,但至少在这个最有希望的方向,太空,还是一步步在推进了。。

穷人家的孩子不去游乐场。他们要工作

......

这句话给我整破防了

引用lelele的发言:

我好奇谷歌是通过什么技术手段拿到用户家里的路由器的MAC地址的????

网页可以运行的脚本是JS,本身不能获取 MAC 地址的。
能获取的只能是安装到你电脑中的软件。
谷歌家是什么软件?
当然是浏览器了。浏览器作为一款软件,安装到你的电脑并运行后,理论上你电脑里就没有什么是不能获取的了。

除了浏览器你还安装过谷歌家族的什么软件?

引用lofayo的发言:

那个飞机螺旋桨的动力来源,是不是来自于发动机驱使螺旋桨旋转,因为高速运转,物体表面压强变小,与空气产生压强差 ,从而产生动力?

一般飞机使用螺旋桨发动机是涡轮螺旋桨发动机,涡桨发动机主要是通过螺旋桨(带角度的)转动提供推力。飞机通过推力形成水平方面的加速度,从而机翼的上下表面会产生压力差,从而形成升力(参考伯努利原型即可)。

引用Even的发言:

有软件可以修改MAC地址,那MAC地址是不是就有可能重复了

本来就可以随便改啊

引用ethan的发言:

拿到用户路由器 MAC 地址不可能吧。原帖里有讨论,拿的应该是 Wi-Fi 的 SSID

应用层拿不到,但是系统是可以拿到的。而且系统拿到了以后会把结果放在一个缓存文件中。那应用层去读这个文件也可以的。。。比如Android系统就可以。

引用lofayo的发言:

那个飞机螺旋桨的动力来源,是不是来自于发动机驱使螺旋桨旋转,因为高速运转,物体表面压强变小,与空气产生压强差 ,从而产生动力?

你想复杂了,只是向后推空气产生的反作用力

最近在尝试搭建DNS自用,使用过滤器经过几天的数据累积,被拦截域名排名前五的是log-sdk.ksapisrv.com,myip.ipip.net,oth.eve.mdt.qq.com,zhihu-web-analytics.zhihu.com,teredo.ipv6.microsoft.com。
尤其是第二个,是获取用户当前ip的,四天被拦截了一万多次,你永远不知道有多少个互联网公司使用或者购买了ipip这家公司的产品和服务,用于挖掘用户位置信息。
另外还顺便了解了一下DNS以及广告拦截相关的法律,关于DNS,在中国,个人不能自建,企业也得有证,不知道外国提供DNS服务的那些科技公司是否需要在他们本国取得相应的许可证才能向全球提供DNS服务。
关于广告拦截,目前在中国拦截广告是违法的。
整体给我的感觉类似于:法律规定,中国网民必须吃屎。

引用ethan的发言:

拿到用户路由器 MAC 地址不可能吧。原帖里有讨论,拿的应该是 Wi-Fi 的 SSID

很多家用路由器的wl接口用的mac地址和lan接口是一样的,或者非常接近。知道wifi的网关mac,就知道路由器的mac了。

凡尔纳一百多年前的小说啊

可以考虑专门划出区域做个人产品推广,给那些投稿自己产品的人

那个浮动城市,我想说太阳底下无新鲜事,看这个失败的:百度搜 在海上漂泊了30年的酒店,经过了4个国家的手,为何还是给拆了?

引用ethan的发言:

拿到用户路由器 MAC 地址不可能吧。原帖里有讨论,拿的应该是 Wi-Fi 的 SSID

bssid 基本就可以认为是路由器的mac地址(虽然,你其实进去的话,可以改掉,但是大部分没这个能力。毕竟一般路由器不会给你这么高的权限)

人类的悲哀就在于,地球还远远还没搞明白,却总想着去月球,去火星。
---地球上的沙漠,也比目前的月球好吧

获取实际位置应该还有一种办法, 就是通过本机ipv6地址.

我试过用google搜索的时候, 它就可以根据本机ipv6地址确定真实地区. 因为ipv6地址是可以做到每个设备一个公网地址的, 而我又刚好开启了这些设置, 所以只要获取到本机v6地址就可以很轻松的确定地区.

但是这个其实也很容易绕开, 因为ipv6现在还是可选的协议, 仅支持ipv6访问的服务应该很少. 只要在系统中禁止ipv6就可以了. 也可以将ipv6配置成fe80开头的局域网地址.

引用lelele的发言:

我好奇谷歌是通过什么技术手段拿到用户家里的路由器的MAC地址的????

被误导了,google获取是通过gps定位获取的,你在苹果手机上面打开谷歌网站会提醒该网站会调用系统获取定位信息,你选择否他就获取不到了。

引用岁月漫步的发言:

人类的悲哀就在于,地球还远远还没搞明白,却总想着去月球,去火星。
---地球上的沙漠,也比目前的月球好吧

你的悲哀就在于,不知道这两件事可以同时进行.

想问问阮大哥,你的资讯从哪里获取,好想学习大佬获取捕捉信息的方式

现在如果你不甘心个人信息被商业公司随意处置,你最好自己成为一个黑客,掌握渗透测试的基本知识,操作系统最好用linux系列的,而且别用ubuntu(ubuntu是商业公司运营),当然比起国内大白菜之类一键安装的windows(非常危险,绝对不要用!),ubuntu还算是比较安全的了,多使用virtualbox之类的虚拟机。

NFT那个,作者都没搞懂稀缺的意思吧,这是经济学概念,稀缺和我们日常说的稀有完全不一样。稀缺的物品,是有需求的,稀有的物品未必有需求

引用徐大大的发言:

你想复杂了,只是向后推空气产生的反作用力

螺旋桨飞机和直升机原理应该和客机的机翼一样,产生的是压强差。只有火箭引擎或者喷气是发动机是靠反作用力

Chat BCG 已经崩了

引用lelele的发言:

我好奇谷歌是通过什么技术手段拿到用户家里的路由器的MAC地址的????

很简单呀,直接解析数据包就可以获取MAX地址了,浏览器位于用户电脑终端,可以获取到用户路由器的MAX的,但数据包在转发过程中更换的MAC地址应该就获取不到了。

穷人没有试错的条件,一次失败造成的后果都无法承受,而富人却可以不断试错,因为有人帮他忙承担失败的后果。

引用Even的发言:

有软件可以修改MAC地址,那MAC地址是不是就有可能重复了

Mac address 重複只會影響同一個網絡內的硬件設備,並不會對當前網絡以外其他網絡設備造成影響。同時,不通的設備製造商在申請Mac address時獲批的16進制地址也是不同的,比方說ARP協議就很依賴Mac地址。

引用红月庄主的发言:

你的悲哀就在于,不知道这两件事可以同时进行.

你的观点提醒了我,我开始觉得觉得他说的对,然后看到你的回复突然使我想到我没有什么思考,所以我又觉得你说得对,过了几分钟,我才发现我没变,还是没有思考,所以我去进行了一些搜索(关于沙漠的应用之类的),而不是简单的去赞同或者否定观点.

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接