大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
点击↑上方↑蓝色“编了个程”关注我~
这是Yasin的第 61 篇原创文章
最近各大社交平台都悄悄上线了一个新功能,就是显示用户的IP归属地,境内精确到省级,境外精确到国家或地区。在个人信息和每条评论上面都有,也是炸出来了一波xx在xx国的账号,各大号主纷纷出视频解释自己的ip归属为什么在国内,有说用代理的,有说给家人登录的,也有说在国内有工作室(团队)的……
今天从技术视角来聊一聊IP地址和归属地这事,也算是复习一下计算机网络的一些基础的知识。
IP
首先要明白IP是什么,IP是Internet Protocol的缩写,意思是互联网协议。而我们现在很多时候说IP,其实是说的“IP地址”的简称,IP地址就是互联网协议地址。简单来说,这是一个网络上的概念,代表的是一个设备的网络地址。
为什么需要IP呢?互联网的底层都是数据的存储和传输。大家想一想,互联网上这么多机器,你的机器想和另一台机器进行数据的传输,怎么才能知道该跟哪台机器建立联系,传输数据呢?
所以每台机器都需要一个独一无二的身份标识,就像是我们人类世界的身份证号一样。每台连上了互联网的设备,都需要有一个IP。IP也分为公网和内网,所谓公网IP,就是在全球最大的网络体系——因特网(Internet),所有人都能直接根据这个IP定位到的,具有独一无二的身份标识。而内网IP,指的是在某个局域网内(比如学校、公司等)唯一的标识。
公网IP并不是每台设备都有的,因为公网IP是一个比较稀缺的资源,当前广泛使用的是IPV4协议,IPV4最多可以提供约42.9亿个IP地址,这么多年过去了,用着用着就发现不够用了。虽然全世界的各个分配机构都相继宣告了IPV4地址已经耗尽,但还是有大量的ISP私藏了大量的IPV4的IP地址。所以但凡稍微有点实力的ISP运营商都不会傻傻地将IPV4地址退回去,而是大批量的囤货,即使不用也会攥着手里。假如真有那些坚持不下去的ISP运营商,退了多少IPV4地址立马就会被瓜分掉。IPV6在不断的普及当中,简短的IPV4地址注定会变成一种稀缺资源。
IP地址的分配
那这些IP地址是怎么分配的呢?公网的IP是由网络运营商分配的,也就是电信、移动、联通等。私网IP是局域网的管理员可以分配的(或者设置一个动态分配的规则),我们在学校的时候,用手机链接学校的WIFI,这个时候就会给我们分配一个手机的内网IP。
一般来说,我们家里面使用的WIFI都是运营商分配的内网IP,内网IP大概长得像这样:
-
10.x.x.x
-
192.168.x.x
-
172.16.x.x-172.31.x.x
而服务器一般是要使用一个固定的公网IP的。比如我的个人网站yasinshaw.com,就是搭建在一个固定的公网ip 47.96.180.234上面的。
内网和公网的通信
那我们的家庭电脑/手机是内网IP,当我们输入www.baidu.com,它是如何找到公网ip,并跟公网IP通信的呢?我们用一张图来解释,假如我的个人电脑要访问百度,我的个人电脑是内网IP,百度服务器是公网IP:
这里涉及到两个中间的节点。
一个是网关,它负责把我们的内网IP映射成公网IP。具体使用的是一个叫NAT转换的技术,简单来说就是会在网关那边维护一个表,用自己的端口来映射,用什么端口来代表什么内网IP。理论上来说,一个网关最多可以同时映射65536个内网ip。
另一个是DNS服务器。我们在域名申请后,一般是要把域名对应的IP注册到DNS服务器上的。DNS服务器是分多个层级的,客户端会不断往上层级去找,直到找到这个域名对应的IP地址,拿到IP地址后,就可以进行访问了。为什么会分多级?是出于性能考虑,每级做缓存,这样可能在前几层就查到返回了。
DNS最顶层的服务器叫DNS根服务器,全球DNS根服务器只有13台,分布在美国、英国、瑞典和日本。这也是为什么前段时间毛子被制裁的时候,有些网友说这个东西很重要,可以让一个国家网络瘫痪什么的。但其实没那么严重,因为根服务器下面还有很多层服务器,特别是国内这种环境,大多数网站都有竞品,很少有人使用国外的网站,所以不使用根服务器其实影响不大。
内网穿透
再聊聊内网穿透这件事。开发过微信公众号的朋友可能或多或少用过这玩意。因为微信是通过访问公网来发送请求的,且改这个地址很麻烦。而在开发阶段,有时候需要联调,这个时候就需要把自己的个人电脑变成一个“公网”IP。
内网穿透的原理其实也是NAT,即端口映射。就跟上图中的网关类似,只不过这里的网关变成了自己的服务器或某些提供内网穿透的平台罢了。
IP归属地址
回到我们最初的问题,IP地址定位,到底是怎么回事?能定位到多精确?
可以做个实验,当你百度IP地址的时候,百度第一个结果是会显示当前的IP和地址和运营商的。这里的IP就是公网IP,自然它的地址就是这个公网IP的地址和运营商了。
百度或其它工具都是通过公网去定位到具体的省市区的。但就像前面所说,一个区域可能会有许多台设备,所以百度、抖音、微博等社交媒体和个人是无法直接精准定位到你的具体位置的,只能是一个范围,但运营商可以,那里会记录你的内网ip和设备信息。所以大家如果干坏事,网警是完全能精准定位到个人的哟~
修改归属地?
那有没有什么办法可以修改IP归属地呢?
看了上面的原理,相信你应该有了一些想法。答案是有的,而且很多。就像很多抖音达人解释的:让他人在异地登录,是一种方案。另一种方案是使用代理、VPN等,这个成本也不高,就是把一个中间的机器放在异地,我们本地通过那台机器去访问服务器,服务器就会认为请求是那台机器发出来的,自然ip和地址也就会记录到那台机器了。
这也是为什么那些黑客需要层层代理和“肉鸡”了,就是为了隐藏自己的真实IP,通过层层转换,增加网警的激活成功教程和追踪难度。
最近因为各大社交媒体显示IP地址归属地这件事,催生了很多灰产,淘宝上也有此类的店铺了,买的人还不少。。。大家感兴趣的可以去搜一搜。
Em,大概就是这样了。
关于作者
我是Yasin,一个喜欢写点什么的程序员
微信公众号:编了个程(blgcheng)
个人网站:https://yasinshaw.com
欢迎关注这个公众号
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/188657.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...