转:为什么根据IP地址查询物理所在地,而不是mac地址?
来自 https://mp.weixin.qq.com/s/aOZQGMnMI2nkX4-qcJL4WQ
读者
不是说mac地址是计算机网卡唯一的地址吗?这样不是可以直接定位到某一台机器吗?为什么要用IP地址啊?是因为服务器历史记录只会存储IP地址还是什么原因阿?求大神解释一下~
大家还记得抓获“甘肃白银案”主犯的过程的来龙去脉吗?
白银警方一直握有案犯的DNA信息,而DNA信息是每个人唯一拥有的,那问题来了,既然DNA信息唯一识别一个人,警方为何那么多年却一直不能锁定案犯?
答案很简单,因为DNA信息库没有世间所有人的DNA信息。如果有,相信案犯绝不会多年逍遥于法网之外。。。
谁曾想案犯的远房亲戚犯事被抓进去了,提取了DNA信息。并把DNA信息录入了信息库,就是把案犯的DNA信息与其本人的身份证ID联系了起来。警方破案时,可以根据嫌疑人现场遗留DNA信息,如果在信息库里比对成功,就可以锁定嫌疑人。
白银警方没有放弃努力,一直用案犯DNA信息去比对DNA信息库。
有一天长时间的匹配查询之后,电脑上留下了相似度最高的一个DNA信息,不用说就是案犯的亲戚的,这一下大大缩小了排查范围。警方经过大量的排查工作,最终成功锁定嫌疑人,并于白银市工业学校一小卖部内将犯罪嫌疑人抓获。
为何不使用MAC地址而使用IP地址来定位位置信息?
MAC地址和IP地址在全球范围内都是唯一的,按理说都可以用来定位计算机的位置,但是目前全球范围内,并没有MAC地址与物理位置的一一对照数据库。
建MAC地址与位置信息库很难吗?
是的,销售商把电脑卖给用户时,可以轻松获得用户ID、电脑MAC对应关系,但是用户是在中国用,还是拿到非洲用,销售商无从知道,所以这个库是不可能建立起来的。
IP地址建库更可行
IP地址属于运营商的资产,运营商很容易将属于自己的IP资产与地理位置绑定起来,运营商可以将一段段的IP地址绑定到某台物理设备上,于是就生成了IP地理信息库(GeoIP),当把全球的IP地理信息库融合为一体,就可以根据用户的IP来粗略获得用户的位置信息。
读者肯定有一个大大的问题,那服务器到底可以获得客户端计算机网卡的MAC地址吗?
如果按照OSI参考模型的通信模式,服务器无法获得客户端网卡的MAC地址。
因为MAC地址位于数据链路层,本地数据链路层会被本地网关终结(Termination),然后网关提取出IP报文及以上(此时已经没有链路层的信息了),将IP报文朝着终点的方向继续中继,所以服务器可以轻松获得客户端的IP,却看不到客户端MAC地址的影子。
难道服务器就没任何办法获得计算机网卡的MAC地址?
只要有客户端的全力支持与配合这个也不难,既然数据链路层无法获得客户端的MAC地址,那能否让客户端将自己的网卡MAC地址、操作系统版本号、显卡序列号、硬盘序列号提取出来,包装在应用层的报文里传输给服务器?这些信息只要操作系统通过系统函数开放出来,应该不难获得。
上文说了,可以通过网络层的IP地址来粗略定位用户位置信息,服务器获得用户IP地址易如反掌。但是却不能依赖IP地址来锁定一台计算机、或者一个用户!
智能手机在家、在地铁、在公司、在商场,随着连接WIFI热点不断变化,手机的IP也在不断变化着,只能依赖IP地理信息库找到IP地址与位置的对应的关系。
无论手机移动到哪里,手机的MAC地址却是不变的,完全可以利用这种唯一性来锁定一台手机(移动计算机)、进而锁定一个用户。
锁定用户有什么好处?
在广告无处不在的互联网生态里,如何唯一锁定用户(用MAC地址唯一识别),并积累用户喜好(搜索引擎),为每一个用户建立一个个人喜好数据库,那么下次用户登录网站时,广告商立马就可以知道是哪个用户了。哦,原来是“王小胖”,王小胖喜欢旅游与美食,那就有针对性地推送“旅游度假”的广告,广告转化为money的概率更高。
上文说了,依赖IP来定位用户位置,最多得到的是一个大概位置,源于IP地理信息库的不准确。如果用户使用代理服务器,服务器看到的是代理服务器的IP,服务器得到的是代理的位置信息,而不是用户的位置信息。
有一次在上海的办公室查询自己的IP,发现位于美国,因为是美国的公司,上海办公室访问Internet全部通过美国公司总部出口,自然就是美国出口的位置了。
准确的客户端位置定位,需要计算机上的GPS硬件接收器的配合,把计算机的实时经纬度信息,上传给服务器,然后服务器将位置信息反馈给客户端,这是当前的APP实现方式。
如果亲爱的朋友们喜欢这篇文章,转发给您身边的朋友们阅读,这是对作者最大的支持,谢谢!
转:为什么根据IP地址查询物理所在地,而不是mac地址?的更多相关文章
- 交换机的端口状态是UP,但是查询该端口下的MAC地址为空
(电脑已关机)电脑与交换机直连的端口状态 还是 UP ,但是 查询该端口下的 MAC地址为空. 初步怀疑原因: Wake-on-LAN(电脑关机,网卡还在工作) Wake-On-LAN简称WOL,是一 ...
- MAC地址与IP地址的区别
介绍一下MAC地址的知识,MAC地址和IP地址的区别以及MAC地址在实际应用中所涉及到的安全问题. 一.基础知识 如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来 ...
- 网络编程懒人入门(九):通俗讲解,有了IP地址,为何还要用MAC地址?
1.前言 标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西.本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么. (本文同步 ...
- IP地址和MAC地址绑定的必要性
计算机网络是一个共通的网络,世界上任何计算机都可以互相访问. 实现的原理基于网络通讯的互联网交互五层模型. 计算机网络的历史发展 当计算机网络技术初始利用的时代,几台计算机通过集线器连接,就可以实现网 ...
- 如果重新设计网络,有没有可能合并IP地址跟MAC地址?
前阵子看网络基础相关的书籍,冒过一个疑问,为什么要有MAC地址跟IP地址?两者可否合二为一? 现在的逻辑是这样子:在数据传输过程中,路由器查看这个数据包的IP地址,跟路由表中记录的“IP集合:下一 ...
- Linux 获取本机IP、MAC地址用法大全
getifaddrs()和struct ifaddrs的使用,获取本机IP ifaddrs结构体定义如下: struct ifaddrs { struct ifaddrs *ifa_next; /* ...
- 使用ARP获取局域网内设备IP和MAC地址
根据Arp列表数据,查询本地设备在线状态 使用 arp -a 获得所有内网地址,首先看Mod对象 public struct MacIpPair { public string HostName; p ...
- 为什么既要有IP地址还要有MAC地址
在脑海中一直有个疑问,在网络上发送信息的时候为什么既要有IP地址还要有MAC地址,IP是唯一的,MAC地址也是唯一的,用一个难道不行么? 既然每个以太网设备在出厂时都有一个唯一的MAC地址了,那为什么 ...
- C#获取路由器外网IP,MAC地址
C#实现的获取路由器MAC地址,路由器外网地址.对于要获取路由器MAC地址,一定需要知道路由器web管理系统的用户名和密码.至于获取路由器的外网IP地址,可以不需要知道路由器web管理系统的用户名和密 ...
随机推荐
- restful 跨域
同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能. 就浏览器而言的, http://127.0.0.1:8000 协议 域名 端口 跨域 问题// 简单 ...
- Web Deploy 发布网站错误 检查授权和委派设置
Web Deploy发布ASP.NET网站给我们提供方便,配置好后可以很方便地发布网站到IIS服务器. 自安装Web Deploy一年以来,一直都用得好好地. 直到最近,Gitlab-CI自动发布出了 ...
- 中国省市县数据库sql文件(2017年10月31日之前)
摘自国家统计局 sql文件下载地址:https://files.cnblogs.com/files/zxj95121/%E7%9C%81%E5%B8%82%E5%8E%BFsql.zip 2019.4 ...
- Java运行环境
Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 Linux 上安装开发环境 安装 Eclipse 运行 Java Cloud Studio ...
- js 获取屏幕或元素宽高...
窗口相对于屏幕顶部距离 window.screenTop 窗口相对于屏幕左边距离 window.screenLeft, 屏幕分辨率的高 window.screen.height, 屏幕分辨率的宽 wi ...
- Cannot redeclare C() (previously declared in .
在引入支付宝入口文件AopSdk.php的时候报错:Cannot redeclare C() (previously declared in D:\phpStudy\WWW\thinkphp\help ...
- textfield reload issue and other things reload problem.===================================
https://github.com/flutter/flutter/issues/18828 https://blog.csdn.net/u011272795/article/details/830 ...
- MyElasticsearch
目录 那些必须要知道的事儿 搭建elasticsearch环境 快速上手 elasticsearch分析数据的过程漫谈 建议器:Suggester IK中文分词器 elasticsearch for ...
- 创建局域网yum服务器
首先需要安装createrepo这个软件包,使用yum安装即可 创建软件库文件夹,比如mkdir -p /var/www/html/myrepo/x86_64, 将软件包拷贝到文件夹下. cd到该文件 ...
- SQL语句——exists和in区别
表结构及数据 user表 order表 in select * from table A where id in (xxxxxxxxxxx):满足条件的数据会被查出来: 先查询子查询的表,然后将内表. ...