本文将介绍各个平台下,通过软硬件方式获得IP的各种思路和方法,基本涵盖了所有使用场景和需求,如果你正在找相关的内容,那一定可以帮到你!
本文探讨的是出口IP,即公网IP,而内网IP不在本文的探讨范围。
基本思路
实现更新IP的方式有很多,但是其底层逻辑可以分成两类:
1.直接修改
正如解决“如何将一头大象放入冰箱”一样,这一需求本身就有一些简单粗暴的解决方式,以手机为例,先打开再关闭手机的飞行模式可能就能得到一个不同的出口IP,不过这一过程并不可控,无法保证每一次都能出现预期的结果 。
2.使用代理(推荐使用兔子IP)
使用代理往往是更好的实现方式,顾名思义,使用代理,可以让代理服务器处理原本从自身IP发出的请求,从而实现更新IP,这也是目前最主流的方法。
直接修改 比起“直接修改”的说法,其实更好的描述方式是“让上游重新为设备分配IP” 。
PC端
PC环境下,每一次拨号都会为系统分配不同的出口IP,前提是使用拨号上网的方式,每次重新拨号,就可以得到一个同一网段的新IP。
事实上,移动设备本身也可以拨号,只不过大多数的移动端系统阉割了此功能。
移动端
移动端环境下,实现这一目标的方法就是通过前文说到的,打开再关闭飞行模式,本质是让基站重新为设备分配一个IP。
浏览器
原生环境下的浏览器IP取决于操作系统,浏览器有的是可以单独设置sokcs5或者http代理。
使用代理IP(推荐使用兔子IP)
和直接修改对应的方法就是使用代理,顾名思义,代理就是通过代理服务器来访问目标,而在谈论使用代理之前,我们先来了解一下市面上常用的代理协议 。
HTTP/HTTPS
HTTP是应用层(OSI第7层)的代理协议,只支持TCP,并且支持数据包解析,例如你可以在代理服务器中解析HTTP流量,对经过对请求进行或响应进行审查和修改,代理服务器证书被信任的情况下,还可以处理HTTPS的请求,这就是为什么你在使用Fiddler、Charles等抓包工具时,它会要求你下载并信任他的证书。
Socks4/Socks5
Socks是会话层(OSI第5层)的代理协议,支持TCP/UDP(UDP仅Socks5支持),仅转发数据包而不解析请求,适用于任意应用(如FTP、BT、游戏等)。
实际场景中,代理服务器往往同时支持Socks和HTTP协议。
L2TP
L2TP全称Layer 2 Tunneling Protocol,是数据链路层(OSI第2层)的代理协议,L2TP本身不加密,常与 IPSec 协议组合(L2TP/IPSec)使用,提供安全加密通道。
SSTP
SSTP全称Secure Socket Tunneling Protocol,是传输层(OSI第4层)的传输协议,由微软开发,原生支持Windows,其他平台需要第三方支持,SSTP隐蔽性高,可以伪装成HTTPS流量
实际场景中,代理服务器往往同时支持L2TP和SSTP协议。