您的位置:首页 >新闻资讯 > 正文

普通代理IP能够隐藏真实IP吗?

来源:互联网 作者:admin 时间:2019-12-04 14:26:07

  代理IP以号称可以将真实IP进行隐藏,保护你的IP隐私作为宣传优势,吸引了很多对于个人隐私非常重视的用户。但是要知道代理IP的匿名程度是分为好几种的,用了代理IP就真的没办法查看真实IP了吗?

普通代理IP能够隐藏真实IP吗

  下面我们进行一个普通代理IP识别测试:


  首先我在自己的测试服务器上安装并启动了 Nginx,它的默认日志格式如下:


  log_format main


  '$remote_addr - $remote_user [$time_local] "$request" '


  '$status $body_bytes_sent "$http_referer" '


  '"$http_user_agent" "$http_x_forwarded_for"';


  即 access.log 文件中会记录客户端 IP 地址、客户端时间、请求方式、响应状态码、响应正文大小、Referer、User-Agent 和代理清单。


  提示:Nginx 中 $http_x_forwarded_for 对应的值这里称为代理清单,它与 RFC7239 中的 Forwarded 含义相同。


  当我使用计算机终端浏览器访问测试服务器地址时,对应的日志记录如下:


  180.137.156.168 - - [24/Nov/2019:12:41:19 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Safari/605.1.15" "-"


  服务器记录到的信息含义如下:


  客户端 IP 为 180.137.156.168


  客户端时间为 [24/Nov/2019:12:41:19 +0800]


  请求方式为 GET / HTTP/1.1


  响应状态码为 200


  响应正文大小为 612


  Referer 为短横线,即为空


  User-Agent 显示浏览器品牌为 Safari


  代理清单为短横线,即为空。


  由于本次并未使用 IP 代理,那么代理清单自然就是短横线。接着我们用 Python 代码测试一下,代码片段 Python-Request 为测试代码。


  import requests


  resp = requests.get("http://111.231.93.117/")


  print(resp.status_code)


  代码片段 Python-Request


  代码运行结果为 200,即目标服务器正确响应了本次请求。对应的日志记录如下:


  180.137.156.168 - - [24/Nov/2019:12:49:41 +0800] "GET / HTTP/1.1" 200 612 "-" "python-requests/2.21.0" "-"


  这次也没有使用 IP 代理,所以代理清单依旧是短横线。现在用代理 IP 测试一下,代码片段 Forwarded-Test 中使用了 IP 代理,我们就用它进行测试即可。这里的代理服务器 IP 地址为 220.185.128.170,根据之前对 RFC7239 的了解,猜测本次请求对应的 Forwarded 记录的会是原始 IP,而客户端 IP 则是代理服务器的 IP。


  代码运行后,服务器记录到对应的日志信息如下:


  220.185.128.170 - - [24/Nov/2019:12:52:58 +0800] "GET / HTTP/1.1" 200 612 "http://www.sfhfpc.com" "python-requests/2.21.0" "180.137.156.168"


  果然,记录中客户端 IP 对应的是 220.185.128.170,即代理服务器的 IP。Forwarded 中记录的 180.137.156.168 是 Python 程序所在的计算机 IP 地址,即原始 IP。


  这与 RFC7239 的描述完全相符,服务端可以通过 Forwarded 找到原始 IP,甚至是使用过的代理服务器 IP。


  通过上面的测试,我们可以看到通过一些技术手段,我们还是能够追查到原来的IP,所以如果是想要完全让真实IP隐形,那么就要选择高匿名代理IP了。


相关文章内容简介