首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PHP实现检测客户端是否使用代理服务器及其匿名级别

PHP实现检测客户端是否使用代理服务器及其匿名级别

原创
作者头像
V站CEO-西顾
发布于 2018-06-10 02:46:22
发布于 2018-06-10 02:46:22
2.1K1
举报
文章被收录于专栏:V站V站

V站笔记

REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。

HTTP_CLIENT_IP 是代理服务器发送的HTTP头。如果是“超级匿名代理”,则返回none值。同样,REMOTE_ADDR也会被替换为这个代理服务器的IP。

HTTP_VIA

$_SERVER['REMOTE_ADDR']; //访问端(有可能是用户,有可能是代理的)IP $_SERVER['HTTP_CLIENT_IP']; //代理端的(有可能存在,可伪造) $_SERVER['HTTP_X_FORWARDED_FOR']; //用户是在哪个IP使用的代理(有可能存在,也可以伪造)

$_SERVER['HTTP_VIA'];//是否使用代理

代理服务器分为透明代理和匿名代理

透明代理会将客户端的请求IP包含在HTTP头中,具体就是$_SERVER['HTTP_X_FORWARDED_FOR']中匿名代理将客户端的IP隐藏起来,IP信息只能在$_SERVER['REMOTE_ADDR']找咯

以下是网上的资料:

一、没有使用代理服务器的情况:

REMOTE_ADDR = 您的 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示

二、使用透明代理服务器的情况:Transparent Proxies

REMOTE_ADDR = 最后一个代理服务器 IP  HTTP_VIA = 代理服务器 IP HTTP_X_FORWARDED_FOR = 您的真实 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

这类代理服务器还是将您的信息转发给您的访问对象,无法达到隐藏真实身份的目的。

三、使用普通匿名代理服务器的情况:Anonymous Proxies

REMOTE_ADDR = 最后一个代理服务器 IP  HTTP_VIA = 代理服务器 IP HTTP_X_FORWARDED_FOR = 代理服务器 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

隐藏了您的真实IP,但是向访问对象透露了您是使用代理服务器访问他们的。

四、使用欺骗性代理服务器的情况:Distorting Proxies

REMOTE_ADDR = 代理服务器 IP  HTTP_VIA = 代理服务器 IP  HTTP_X_FORWARDED_FOR = 随机的 IP ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

告诉了访问对象您使用了代理服务器,但编造了一个虚假的随机IP代替您的真实IP欺骗它。

五、使用高匿名代理服务器的情况:High Anonymity Proxies (Elite proxies)

REMOTE_ADDR = 代理服务器 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示 ,经过多个代理服务器时,这个值类似如下:203.98.182.163, 203.98.182.163, 203.129.72.215。

完全用代理服务器的信息替代了您的所有信息,就象您就是完全使用那台代理服务器直接访问对象。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
我觉得,如果应用了代理,只要代理操作的足够好,任何服务器也无法得到真实客户机的IP的,代理本事就是为了隐藏客户机而产生的。
我觉得,如果应用了代理,只要代理操作的足够好,任何服务器也无法得到真实客户机的IP的,代理本事就是为了隐藏客户机而产生的。
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
php获取客户端IP和服务器端IP[通俗易懂]
在PHP获取客户端IP时,常使用 _SERVER[“REMOTE_ADDR”] 。但如果客户端是使用代理服务器来访问,那取到的是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用_SERVER[“HTTP_X_FORWARDED_FOR”]来读取。
全栈程序员站长
2022/11/15
5K0
php获取客户端真实IP 防止代理和作弊
内容提要:这种情况下同样透露了客户端是使用了代理服务器,但编造了一个虚假的随机IP(220.4.251.159)代替客户端的真实IP来欺骗它……   获取客户端ip其实不是个简单的活儿,因为存在Ip欺骗,和代理问题,所以获取客户端的IP的真实性会打折扣的,不能百分百准确.但是我们还是尽量找一个比较完善的获取客户端真正ip方法.使用php获取IP的方法能找到很多.
皇上得了花柳病
2020/05/05
2.7K0
再论 ASP.NET 中获取客户端IP地址
说到IP获取无非是我们常见的以下几种方式,但是具体获取的值具体区别在哪?网上不乏相关文章,说的也是很详细,但是真正使用起来,还有很多不太对的地方。IP在不同系统中,应用相当广泛,常见的日志记录、广告分区域投放等。 1: HttpContext.Current.Request.ServerVariables["HTTP_VIA"]; 2: HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
逸鹏
2018/04/11
4.2K0
再论 ASP.NET 中获取客户端IP地址
getenv(php7.0以上版本不不能使用的问题)[通俗易懂]
REMOTE_ADDR = 您的 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示
全栈程序员站长
2022/08/09
4650
php检测用户是否使用代理上网的方法
获取用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
零式的天空
2022/03/02
1.6K0
PHP获取客户端IP地址方式
  使用这种代理时,不同浏览器不同设备会返回不同的ip头信息,因此PHP使用_SERVER["REMOTE_ADDR"] 、
全栈程序员站长
2022/11/17
5.4K0
nginx 日志获取不到远程访问ip问题解决
公司有一个应用,后端web用的是nginx,nginx 的所有请求都是通过前端的代理转发过来的,所有在日志格式里面 获取远程ip的变量用的是 $http_x_forwarded_for ,本来用的好好的,但是有一天日志分析脚本里面出现很多请求的 ip地址是空的,大概格式如下 - - - [20/May/2011:02:23:44 -0700] "GET /favi.ico HTTP/1.1" 404 56 "-" "Mozilla/5.0 (Windows NT 6.1; rv:2.0) Geo/20100
joshua317
2018/04/16
2K0
2018-09-25 如何取得wap和web用户的真实IP
https://blog.csdn.net/rogerjava/article/details/9418211
Albert陈凯
2018/09/30
1.6K0
php获取客户端ip以及ip伪造
声明:因为使用了cdn之后无法正常的获取客户端ip,则做此次记录,仅供学习交流,请不要用于非法用途,由此教程产生的法律问题均与本人无关!
天方
2022/09/14
5.7K0
php获取客户端ip以及ip伪造
声明:因为使用了cdn之后无法正常的获取客户端ip,则做此次记录,仅供学习交流,请不要用于非法用途,由此教程产生的法律问题均与本人无关!
天方
2022/08/30
5.5K0
你好!正向代理!
反向代理暂且不提,太熟了!nginx、Fikker、Traefik、haproxy随随便便能说出四五个。
IT运维技术圈
2022/06/26
7780
你好!正向代理!
带你了解代理 IP 那些事
在爬取某些网站时,我们经常会设置代理 IP 来避免爬虫程序被封。我们获取代理 IP 地址方式通常提取国内的知名 IP 代理商(如西刺代理,快代理,无忧代理等)的免费代理。这些代理商一般都会提供透明代理,匿名代理,高匿代理。那么这几种代理的区别是什么?我们该如何选择呢?本文的主要内容是讲解各种代理 IP 背后的原理。
猴哥yuri
2018/09/21
1.2K0
带你了解代理 IP 那些事
nginx反向代理获取客户端的真实IP和域名
nginx反向代理后,在应用中取得的ip都是反向代理服务器的ip,取得的域名也是反向代理配置的url的域名,解决该问题,需要在nginx反向代理配置中添加一些配置信息,目的将客户端的真实ip和域名传递到应用程序中。
用户7639835
2021/08/28
4.8K0
Java服务器获取客户端的真实IP
首先,一个请求肯定是可以分为请求头和请求体的,而我们客户端的IP地址信息一般都是存储在请求头里的。如果你的服务器有用Nginx做负载均衡的话,你需要在你的location里面配置 X-Real-IP和 X-Forwarded-For请求头:
健程之道
2019/11/03
5.1K0
劳动节 | 说说代理池
近期由于工作中的遇到的问题,在研究代理池,其实代理池应该说已经是比较成熟的技术,而且在飞速发展,比如现在主流的“秒拨”技术,给企业在风险IP识别和判定上带来极大的难度。代理池技术目前被广泛用于爬虫、灰黑产、SEO、网络攻击、刷单、薅羊毛等等领域。
tinyfisher
2020/05/13
8310
劳动节 | 说说代理池
Linux curl命令使用代理、以及代理种类介绍
 有时出于个人隐私的原因,我们希望隐藏自己的IP,让http服务器无法记录我们访问过它,这时我们可以使用代理服务器。   代理服务器(Proxy Server)是工作在浏览器与http服务器之间的一个服务应用,所有经过代理服务器的http请求,都会被转发到对应的http服务器上。   当然,除了http可以使用代理外,https、ftp、RTSP、pop3等协议同样可以使用代理访问,不过本文介绍的是支持http、https协议访问的代理。
IT工作者
2021/12/20
6.2K0
获取访客 IP 的正确姿势
那么究竟应该用哪种呢?我们先来看下 REMOTE_ADDR 、 HTTP_X_FORWARDED_FOR 、 HTTP_CLIENT_IP 是什么。 REMOTE_ADDR 访客 IP ,如果使用代理访问则显示代理 IP HTTP_X_FORWARDED_FOR 访客 IP ,如果不使用代理访问则为空 HTTP_CLIENT_IP 代理服务器 IP ,如果不使用代理访问则为空 注意 REMOTE_ADDR 是无法更改的,而 HTTP_X_FORWARDED_FOR 、 HTTP_CLIENT_IP 是由客户端(一般指代理服务器)自行设定的。
php007
2019/08/16
2K0
获取访客 IP 的正确姿势
【复】从0到1的 selenium 爬虫经历
备战春招难免会无趣和煎熬,因此,突然发现了爬虫这么乐趣的事情,一番探究之后,发现这是多么美妙的事情啊~
sidiot
2023/08/31
4890
【复】从0到1的 selenium 爬虫经历
PHP获取客户端真实IP地址
参考文章:https://www.php.cn/php-weizijiaocheng-406174.html
很酷的站长
2023/02/01
6.5K0
一个靠爬虫赚钱的思路
今天早上登录我的虚拟机,发现速度慢得出奇。每次运行命令,都要等好一段时间才能看到结果。就如 cat 一个文件的内容这种命令,都要等好一会儿。查看CPU使用率、内存使用率,都很正常。但查看网络连接的时候,发现有好多人连到我的3128端口。
龙哥
2019/08/23
1.4K0
相关推荐
php获取客户端IP和服务器端IP[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档