IP 地址怎么定位?

简介:

我们经常可以在影视作品中见到某某组织通过对某个人的 IP 地址进行监控,定位其位置,甚至精确到某栋大楼的某一层,如此可怕的场景在现实生活中真的有可能会发生吗?

先来说结果,仅通过 IP 地址最精确能够达到街道级别。而且在不通过运营商的用户数据库查询情况下,定位到家庭住址和单元楼的情况难度很高。

ISP

《互联网是如何工作的》一文中,我们介绍道,IP 地址是类似于现实世界中的地址这样的东西,通过 IP 地址,我们就可以在网络上定位到一台计算机,在现实世界中,IP 地址是由一个叫互联网服务提供商,即 ISP 提供的。

回想一下我们上网的过程:

去运营商(移动、电信、联通)办理宽带业务 -> 业务员上门拉线 -> 电脑连接宽带 -> 访问互联网

在这一过程中,三大运营商就是我们能接触到的 ISP 的,ISP 可以从互联网管理机构申请到很多 IP 地址,然后一些机构和个人从某个 ISP 获取 IP 地址的使用权,并可通过该 ISP 连接到互联网。

那么 ISP 又是如何标记 IP 地址的地理位置的呢?

我们先来说说 ISP 的三层结构。

三层 ISP 结构分为主干 ISP,地区 ISP,本地 ISP。本地 ISP 给用户提供最直接的服务,本地 ISP 可以连接到地区 ISP,也可以连接到主干 ISP。从原理上讲。只要每一个本地 ISP 都安装了路由器连接到某个地区 ISP,而每一个地区 ISP 也有路由器连接到主干 ISP,那么在这些相互连接的 ISP 的共同作用下,就可以完成互联网中的所有的分组转发任务。

这里我们通过计算机网络教材中的一张图来理解三层结构,如图 1 所示 👇

图1 基于 ISP 的多层结构的互联网的概念示意图

也就是说,当你向好友发了一条微信,这条微信首先会从你所在公司/学校的内网上发到当地的服务器,再从当地服务器发送到地区服务器,之后从地区服务器通过移动/联通/电信的服务器向你好友所在地的地区服务器转发,再通过本地服务器最终转发到好友所在公司/学校的内网。

如此一来,既然你的 IP 地址是由当地的 ISP 分配给你的,自然也就知道了你所在的 IP 地址的大致位置了。

IXP

在图 1 中,我们发现图中还有一个叫 IXP 的东西,这里简单扩展一下,还是以发微信为例,如果每次发微信的都将数据先发到本地 ISP,然后发到地区 ISP,然后再发到主干 ISP,通过这样的链路将数据传输到对方的设备上,显然是不合理的,如果流量过大,有没有什么优化方案?

显而易见,当然是有的,我们可以通过在低层 ISP 之间搭桥的方式,让流量不走主干 ISP,直接在地区 ISP 之间直接相连进行交换分组,这样一来可以降低延时,二来还可以降低费用(走高层主干 ISP 收费一定比直接走底层地区 ISP 贵)。

精确定位

通过上一小节的讲解我们知道了可以通过申请的运营商的地址判断你的 大致位置 ,这个大致位置可以精确到省市,如图 2 所示,我们在百度搜索 IP,就可以给我们返回本机 IP 所在的城市。

图2 百度获取本机 IP 位置

2016 年 8 月 26 日,百度地图高精度 IP 定位服务 API 正式上线。但是一年后,也就是 2017 年 7 月,开发者陆续收到百度终止高精度 IP 定位服务 API 的通知邮件。这里我不想讨论工程伦理问题,仅就其高精度 IP 定位服务,谈一谈个人理解。

  1. 用户手机里安装了百度的服务,比如百度地图 SDK
  2. 用户手机运行了百度的服务,比如使用百度地图进行导航,公交查询等等过程,都会让百度的服务运行起来
  3. 百度提供服务的同时,将当前的坐标,跟 IP 地址数据,当前时间,定位方式,WI-FI 信息,移动联通电信等运营商的基站信息,传送给百度的后台服务器中,后台服务器留存了这些数据,然后也用这些数据给用户返回了用户需要的内容。这个过程也就是百度的匿名采集信息过程。用户使用前必然都是许可了百度可以使用这些匿名数据。
  4. 百度提供了服务同时,自己收集了匿名数据。而这些数据中,就包括 IP 和 GPS 的对照数据。
  5. 利用这些数据,就可以计算出一个 IP 曾经在哪些范围被使用过,从而得到一个精确的范围数据,这个范围的中心点,就被认为是最接近用户的地点,同时还会把误差半径也计算出来。

通过上述分析可知,百度的高精度 IP 定位服务,其根本来源于百度匿名收集服务,它的源头则是:手机位置服务。可能百度收集这些数据并非出于泄露隐私目的,但是,大数据发展导致我们可以用各个数据源去拼凑一个完整画像,这也有意无意导致一个泄露隐私的结果。所以百度下线这一功能也是情理之中的。

扩展

延伸一下,获取到精确的定位我们可以做些什么?

在一篇名为《一种基于地理位置和兴趣点信息的用户细分方法》专利申请中曾写道:

通过将客户去过的地方来量化的勾勒出用户的类型,即所有客户不再被看成简单的数字,而是具有不同兴趣点(标签)的 个体。用用户的兴趣点来量化地勾勒出用户的具体细节轮廓。采用本发明方法得出的对用 户兴趣点的诠释在某些时候甚至能超过个体本人对自身的诠释和了解。

简单翻译一下上面的话就是,通过对你不同时间段所处的位置进行分析,可以将你进行一个归类,例如,喜欢运动的用户、学生用户以及喜欢购物的用户。在通过多维度的分析后,这套系统可能会比你自己更了解你。

当然了,这样的专利并不是只有这一家,国内互联网巨头们都有着类似的专利,比如腾讯的CN103456233A,阿里巴巴的CN106534392B,这些早就不是什么遮遮掩掩的东西了。就像李彦宏说的,中国人多数情况下愿意用隐私换取便捷性。虽然这是一种“被愿意”。

相关文章
|
6月前
|
开发工具
修改IP地址
【2月更文挑战第29天】修改IP地址。
78 2
|
1月前
|
网络安全 Python
Python编程--目标IP地址段主机指定端口状态扫描
Python编程--目标IP地址段主机指定端口状态扫描
|
5月前
|
安全 网络安全 网络架构
IP地址的主要功能
IP地址是网络设备的唯一标识,用于数据包路由、网络通信、互操作性、安全管理和全球信息共享。它们确保数据准确传输,支持路由决策,允许设备安全互动,并打破地域限制。IP地址在不断发展的网络世界中扮演着核心角色。
|
网络架构
显示ip地址的命令(查看本地电脑的IP地址的方法)
显示ip地址的命令(查看本地电脑的IP地址的方法)
3951 0
|
JavaScript 前端开发 中间件
如何根据 IP 获取位置?
现在很多带有社交性质的应用都陆续的添加了显示地区的功能。为什么要公布属地呢? 其实主要目的还是为了净化网络空间,减少网暴的或者谣言的出现。 那么如何判断用户的地址呢? 答:IP。
619 0
多IP情况下如何获取本地的第一个IP及如何调整本地的第一个IP
我分析了业务的代码,OPTIONS中的Via中的用的是采用gethostbyname获取的。这意味着该函数获取的系统的默认的第一个IP。如果操作系统有多个IP,如何设置它们的优先级呢?
多IP情况下如何获取本地的第一个IP及如何调整本地的第一个IP
|
数据采集 Python
Python爬虫系列3-通过Ip地址定位目标所在区域
在现如今的互联网时代,我们越来越依赖网络,甚至网络已经融入了我们的日常生活,甚至没有办法想象如果没有了网络,会造成什么样的情景?。。。
Python爬虫系列3-通过Ip地址定位目标所在区域
|
前端开发
前端IP位置定位以及访问日志问题解决
前端IP位置定位以及访问日志问题解决
|
Apache
如何屏蔽某IP地址访问网站
最近发现网站恶意攻击频率较高,登录服务器管理后台,发现某些IP持续性地恶意访问我的站点,而且都是一些不存在的页面或文件。很显然这些访问请求不正常,所以就研究了下如何屏蔽掉某IP或IP段访问站点。
1834 0