手机是怎样通过WIFI定位的!

今天在网上看到以下一片文章,比较详细的描述了WIFI定位的原理,说的很好,有空可以看看。

wifi定位是很便利的,我们用的时候基本上是透明的,开了wifi连上网络,即可定位。精度从几十米到百十米不等,已经很了不起了,要知道天上三颗卫星没白没黑地转,也就是提供20米左右的精度,而且仅限室外。另一种未怎么普及的定位技术,Cell ID定位(基于手机的通话模块),因为涉及到须要运营商的基站硬件软件的大力投入,非我等日用品了。这样看来,wifi定位确实是一个了不起的技术。但是你若知道了wifi定位原理的背后,就会觉得它不单单是“了不起”。


      先消除一个最大的误解。很多人误以为wifi是用的ip定位,而且很多人还在争论用的是AP的ip还是无线设备的ip。第一,你通过AP获取到的ip是一个私有地址(192.xxx、172.xxx、10.xxx),这个没有任何的定位意义,任何一个办公室或家庭都有这个地址段;第二,人说了AP的ip很可能是公网ip啊,用这个定位嘛。错了。ip定位的精度是不可控的,一般是省市级别,这就是qq显示好友位置的时候最多跟你说Ta在某某市,而不是某某市某某街边的某个网吧里(不排除有显示到网吧的,这仅说明这个网吧的公网ip、名称、地址已经被好事者“注册”了)。ip是什么?它是设备在某个网络里的标示符,而互联网上的一张网,可以从北京覆盖到成都的。通俗将,你可以大致这么理解,ip就是电信光纤一头的某台设备,而一根光纤可以有多长,这个大家可以想象下那种海底跨洋光纤。 window下面有个命令叫tracert,是用来确定你到达某个目标网站之类所需中转的ip数量,大家可以自己尝试一下(开始菜单--》运行--》cmd回车---》黑窗口中输入tracert   www.ccav.com ),然后你看一下从你所在位置到例如北京某网站,中间过了多少个ip,再除以物理距离,你就大致知道ip这个东西的定位精度有多不靠谱了。

      好进入正题。那google map之流,如何用wifi就把我锁定到百十来米的范围呢?
      wifi定位业界有个术语叫WPS, Wi-Fi-based positioning system ,它是一种通过建立世界各地AP的位置数据库来计算接入某个ap的无线设备地址的技术。关键点就在于这个AP地址库是怎么建立的。先卖个关子,仅告诉你,这些AP不是特殊的AP,不是电信的AP,而就是你家里的AP。没错,你家里的AP的地址信息,很可能已经在谷哥的裤里了。

      创建库、查询这个库,这个不纠缠,谷歌就是干这个出身的,也没有好复杂的技术。问题是,这个库的数据是获取的?一开始,谷歌宣称,它是用了类似谷歌街景的技术,通过定期专业车出街来扫描公共AP(注意这个公共AP是指将ap信号辐射出来的ap,即使你设定了接入密码,它还是能够获取到你的ssid跟AP mac,对谷歌来说,你还是公共的~),谷歌还信誓旦旦地做了 免责声明 。但我们天朝用户很明了,谷歌在国内是派不来车滴,别拿这个糊弄我们。
      它其实是利用了我们用户自己来建立这个库的。

      大致原理:某天你家里添了一个ap。而某个恰巧撸过你街道的人正用iphone开gps做定位呢,而且人开了wifi,用了google地图。这哥哥用完地图后,它的iphone可没完。它计算出这个点gps坐标,然后很开心地发现它又捕捉到了一个新的ap接入点(即使你没有去连接它或者没有接入密码),然后它“顺便地”把你AP的一些信息,如ssid、mac,反正就是标示你这个ap的数据,上传到谷歌的数据库中,同时附带上刚刚的gps地理数据。这样,在你以及这哥哥毫不知情的情况下,你家AP的位置信息就被标注了。然后当你打开谷歌自家的浏览器chrome时候,很开心地发现它居然智能到能通过pc电脑就识别到你的位置!你浏览器又没GPS!

      看到这里已经一身汗了?不管你汗不汗,反正我是汗了。引申出的很多关于安全的话题我不纠结,纯技术论技术。

      但不得否认,wifi定位技术首先是为我们带来了很大便利。且不说那些没有gps模块的数码设备,即使gps很便宜的今天,你屋里面也无法定位啊。这个wifi定位,其实是ad-hoc,或者UGC(User Generated Content,用户创造内容/价值)理念的一个极品应用。但是,能实现它的,只有像谷歌、苹果、微软等几个业界巨头才能完成,人家的系统人家说了算。
      目前在做这个库的厂家们,对于这个技术,基本上是避而不谈的,只管收集,只管提供给用户用。而米国政府方面,对于这么个堪比战斧捣蛋的技术,不知道是否跟这些公司有一定的协议,也不城管它们。所以说,这究竟是个阴谋,还是个民不举官不究的阳谋,我们无处了解。

      只想到几个问题,大家思索:

1、很有意思的,它们虽然有这个库,但你是查不到这个库的,例如我想查查我家的ap究竟地址数据进裤了没有,反正我是没找到这个查询地址。只有你的手机或浏览器它才知道怎么用这个库,而这些代码,很可能是加密过的。
2、这个庞大而潜力无限的库,目前只有谷歌、苹果、微软这些国外厂家有,这个似乎人家不用经过我们zf的啥管控就建立起来了。而国内的厂家,包括即时zf想去建,我们有这个实力吗?去开发个人人都要用的手机,或手机操作系统?
3、当然也无需太过紧张,该咋用咋用。这种行径并不比电信们批发我们的手机号给垃圾短信商们更恶劣,起码目前是利民的。
4、习惯随时随地开gps的骚年们,当你们行走在路上的时候,你们就是谷歌的街景巡逻车~

最后附几个实用方法:
1、下载chrome浏览器,打开 www.google.com.hk ,点击地址栏最右边的工具按钮,找“工具”菜单,点击“Javascript”控制台。然后在底部弹出的窗口中,“>”提示符后面输入:
navigator.geolocation.getCurrentPosition(function(p){console.log('定位精度:' + p.coords.accuracy+ '米, 纬度: ' + p.coords.latitude + ',经度: ' + p.coords.longitude)})
若弹出窗口问当前网站想获取你的位置信息,是否允许,点允许。
然后你自己看你当前的地址信息吧。可以换几个ap接入点多试试,很有意思。
对了,上述命令是假设你wifi上网的环境下哈,直接网线插过来的同学表麻烦试了~
2、防备入裤的方法有否?给谷歌去个义正言辞的声明?别那么麻烦。简单地将你自家的ap的接入点设置为隐藏就ok了。详尽步骤各异,请咨询周边的技青人士~

Q&A区:

那便携式路由又杂个说捏?

还是比方说:你某地开了便携路由,甚至用的是你ip4的热点。但你的牛排在搜索到你的热点同时,还搜索到了比如电信的chinanet的热点,尽管你不见的去连它。你便携路由的地址信息肯定是乱的,但通过chinanet等其他热点的指纹,谷哥或苹果还是能较为准确的定位你。一旦当你不管走那种途径连上了网络,地址信息就给你发过来了。


原文链接:http://bbs.feng.com/read-htm-tid-4943418.html

你可能感兴趣的:(手机是怎样通过WIFI定位的!)