一篇文章让你了解动态ip的原理及分类

一篇文章让你知道代理IP的原理和分类!在爬取一些网站时,我们经常会设置代理IP,以避免爬虫被拦截。我们获取代理IP地址的方法通常提取国内知名IP代理的免费代理和拨号VPS。这些代理通常提供透明代理、匿名代理和高低代理。那么这些代理之间有什么区别呢?我们应该如何选择?本文的主要内容是解释各种代理IP背后的原理。
 
 
 
 
1种代理类型
 
 
 
有四种类型的代理。除了前面提到的透明代理、匿名代理、高低代理和混淆代理。在安全性方面,这四类代理的排序为高低>混淆>匿名>透明。
 
 
 
2代理原则
 
 
 
代理类型主要取决于代理服务器的配置。不同的配置将导致不同的代理类型。在配置中,这三个变量,远程ADDR、HTTP_VIA和HTTP_X_FORWARDED_FOR,是决定性因素。
 
 
 
1)远程_ADDR
 
 
 
REMOTE_ADDR代表客户端的IP,但它的值不是由客户端提供的,而是由服务器根据客户端的IP指定的。
 
 
 
如果使用浏览器直接访问网站,则为网站的web服务器(Nginx、Apache等)。)会将REMOTE_ADDR设置为客户端的IP地址。
 
 
 
如果我们为浏览器设置代理,我们访问目标网站的请求将首先通过代理服务器,然后代理服务器将请求转换为目标网站。然后网站的网络服务器将远程ADDR设置为代理服务器的IP。
 
 
 
2)X-转发-针对(XFF)
 
 
 
x-forward-For是一个HTTP扩展头,用来表示HTTP客户端的真实IP。当客户端使用代理时,网络服务器不知道客户端的真实IP地址。为了避免这种情况,代理服务器通常会添加一个X-forward-For报头信息,并将客户端的IP地址添加到报头信息中。
 
 
 
转发请求报头的格式如下:
 
 
 
转发给:客户端,代理1,代理2
 
 
 
客户端代表客户端的IP地址;Proxy1是距离服务器最远的设备的IP;Proxy2是辅助代理设备的IP;从格式中,我们可以看到从客户端到服务器可以有多层代理。
 
 
 
如果一个HTTP请求通过三个代理,Proxy1、Proxy2和Proxy3,分别带有IP1、IP2和IP3,而用户的真实IP是IP0,那么根据XFF标准,服务器最终会收到以下信息:
 
 
 
x-转发-适用于:IP0、IP1、IP2
 
 
 
代理3直接连接到服务器,它会将IP2添加到XFF,表示它正在转发代理2的请求。列表中没有IP3,可以通过远程地址字段在服务器中获取IP3。我们知道HTTP连接是基于TCP连接的,HTTP协议中没有IP的概念。远程地址来自TCP连接,这意味着与服务器建立TCP连接的设备的IP,在本例中是IP3。
 
 
 
3)HTTP_VIA
 
 
 
Via是HTTP协议中的一个头,它记录了HTTP请求通过的代理和网关。在一个代理服务器之后,添加一个代理服务器的信息,在两个之后,添加两个。
 
 
 
3代理类型差异
 
 
 
1)透明代理
 
 
 
代理的配置如下:
 
 
 
远程ADDR =代理IP
 
 
 
HTTP_VIA =代理IP
 
 
 
HTTP_X_FORWARDED_FOR =您的IP
 
 
 
虽然透明代理可以直接“隐藏”客户端的IP地址,但它仍然可以从HTTP_X_FORWARDED_FOR中找到客户端的IP地址。
 
 
 
2)匿名代理
 
 
 
代理的配置如下:
 
 
 
远程ADDR =代理IP
 
 
 
HTTP_VIA =代理IP
 
 
 
HTTP_X_FORWARDED_FOR =代理IP
 
 
 
匿名代理可以提供隐藏客户端IP地址的功能。通过使用匿名代理,服务器可以知道客户端使用了代理,但无法知道客户端的真实IP地址。
 
 
 
3)扭曲代理
 
 
 
代理的配置如下:
 
 
 
远程ADDR =代理IP
 
 
 
HTTP_VIA =代理IP
 
 
 
HTTP _ X _ FORWARDED _ FOR =随机IP地址
 
 
 
原理类似匿名代理,但会更现实。如果客户端使用混淆代理,服务器仍然可以知道客户端正在使用代理,但它将获得一个虚假的客户端IP地址。
 
 
 
2)精英代理或高匿名代理。
 
 
 
代理的配置如下:
 
 
 
远程ADDR =代理IP
 
 
 
HTTP_VIA =未确定
 
 
 
HTTP_X_FORWARDED_FOR =未确定
 
 
 
高隐藏代理不仅可以使服务器不清楚客户端是否在使用代理,还可以保证服务器无法获得客户端的真实IP地址。
 
 
 
4.代理人的选择
 
 
 
普通的匿名代理可以隐藏客户端的真实IP,但是会改变我们的请求信息,服务器可能会认为我们使用了代理。但是在使用这个代理的时候,虽然被访问的网站不能知道客户端的IP地址,但是它还是可以知道你在使用代理。当然,一些可以检测IP的网页还是可以找到客户端的IP的。
 
 
 
高度匿名的代理不会改变客户端的请求,因此看起来像是一个真正的客户端浏览器正在访问服务器。这时客户端的真实IP是隐藏的,服务器不会认为我们使用了代理。
 
 
 
因此,当爬虫需要使用代理IP时,尽量选择普通匿名代理和高匿名代理。此外,如果您想确保代理服务器不知道数据,建议使用HTTPS协议的代理。