网站经常会需要读取访客的IP,但是使用CDN或者WAF之后,你使用 REMOTE_ADDR 读取到的IP地址其实是CDN节点的IP,不是访客真实的IP。
那么如何才能读取访客真实的IP呢?前段时间试用了华为云的CDN之后就遇到了这个问题。
经过测试,发现华为云的CDN可以使用 HTTP_CDN_SRC_IP 来读取访客的真实IP。
PHP Code
$ip = $_SERVER['HTTP_CDN_SRC_IP'])
ASP Code
ip = Request.ServerVariables("HTTP_CDN_SRC_IP")
这样之后就能用 $ip 或 ip 来使用真实IP了。
但是还有一个问题,我们不用CDN的时候,又需要修改代码来使用 REMOTE_ADDR 读取访客IP,非常麻烦。
所以我们可以将代码进行修改,让我们无论在什么情况下,读取的都是真实的访客IP。
先看代码:
PHP Code
if (isset($_SERVER['HTTP_CDN_SRC_IP'])){ //判断CDN IP是否存在,如果存在 $IP = $_SERVER['HTTP_CDN_SRC_IP']; } else { //如果CDN IP不存在,则 $IP = $_SERVER['REMOTE_ADDR']; }
ASP Code
if Request.ServerVariables("HTTP_CDN_SRC_IP")<>"" then '判断CDN IP不为空 ip = Request.ServerVariables("HTTP_CDN_SRC_IP") else ip = Request.ServerVariables("REMOTE_ADDR") end if
是不是很简单,后续可以使用 $ip 和 ip 变量来调用真实IP了。
下一篇:早期版本升级PHP 7.4.5 之后出现500错误的原因和解决办法
上一篇:PHP CGI 进程占用CPU过高导致CPU使用达到100%的另类原因
- 相关文章 -
早期版本升级PHP 7.4.5 之后出现500错误的原因和解决办法 - 2020-04-20
Linux系统启动过程和登录方式 - 2011-11-07
Linux挂载点与硬盘分区的关系 - 2011-11-07
WordPress更换域名简单教程 - 2011-10-28
Linux新手必知的12个基本命令 - 2011-10-09
使用华为云CDN如何读取真实访客IP - 2018-11-24
PHP CGI 进程占用CPU过高导致CPU使用达到100%的另类原因 - 2018-11-21
常见编程语言中的注释符号和格式 - 2017-12-19
- 文章评论 -
- 最新评论[0条评论] -
版权所有©逍遥峡谷 - 星际中心超自然局 · 地球总部 |
逍遥峡谷 ·
酷品优选
Copyright©Interstellar Central Occult Agency (I.C.O.A)
本局纯属虚构,如有雷同,纯属巧合