PHP获取客户端真实IP的方法
摘要:
利用getenv获取获取用户真实ip可以获取相当可观的用户数据,不管是做大数据还是数据备份查找来源,都是不错的选择.
好处:
一个网站,获取用户是非常有必要的,你获得了ip可以干嘛?简单了说,它只是显示一个地方,但如果这个ip数据足够大了.对一个网站来说好处可就大大的有了,做大数据,准确营销,假如你是购物网站,你肯定想让商品卖给需要它的人,而不是像超市一样哪里人多往哪开.也不会跑到寺庙卖梳子(把梳子卖给和尚属于骗人).
用法:
此方法不仅仅可以获取来访者IP,就算是国外的IP一样可以获取.甚至挂了vpn的客户端一样能获取到.
这里我们用超全局变量$_SERVER[‘REMOTE_ADDR’],它是你的客户端跟你的服务器”握手”时候的IP。如果使用了”匿名代理”,REMOTE_ADDR将显示代理服务器的IP。
当然,web服务器下,也有不用REMOTE_ADDR的,比如IIS服务器,用的是CLIENT_IP代表客户的IP,如果某人使用了代理,如何获取?HTTP_X_FORWARDED这个可以做到.当然,用这个东西会有一定的安全问题,我们下一篇文章再讨论.
web服务器很多都不允许获取它的服务器信息的,我们就可以用getenv去获取.
代码如下:
//不同环境下获取真实的IP
function get_ip(){//判断服务器是否允许$_SERVERif(isset($_SERVER)){ if(isset($_SERVER[HTTP_X_FORWARDED_FOR])){$realip = $_SERVER[HTTP_X_FORWARDED_FOR];}elseif(isset($_SERVER[HTTP_CLIENT_IP])) {$realip = $_SERVER[HTTP_CLIENT_IP];}else{$realip = $_SERVER[REMOTE_ADDR];}}else{//不允许就使用getenv获取 if(getenv("HTTP_X_FORWARDED_FOR")){$realip = getenv( "HTTP_X_FORWARDED_FOR");}elseif(getenv("HTTP_CLIENT_IP")) {$realip = getenv("HTTP_CLIENT_IP");}else{$realip = getenv("REMOTE_ADDR");}}return $realip;
}
为了防止重复运行代码或者重复的来访者IP,我们可以放在静态变量中.只需要在代码前面加如下面代码:
static $realip = NULL;
if($realip !== NULL){return $realip;
}
PHP获取客户端真实IP的方法相关推荐
- 获取客户端真实ip的方法
为什么需要获取客户端真实ip ip地址是按地域分布的,服务器获取到客户端ip后可以做流量统计和分析,服务器也可以针对客户端ip做一些定制化的功能,比如限流和黑白名单. 网络环境十分复杂,客户端发出的一 ...
- Java从代理服务器中获取客户端真实IP的方法
概要 一般在单机版的tomcat获取请求来源的ip,可以使用下面方式这么干,下文的request是HttpServletRequest对象. String remoteAddr = request.g ...
- python获取客户端ip_各种脚本语言获取客户端真实IP的方法
各种语言获取客户端真是ip的方法 1.PHP脚本获取客户端真实ip的方法 整体思路:需要依次检查HTTP_CLIENT_IP.HTTP_X_FORWARDED_FOR.REMOTE_ADDR这三个是否 ...
- 获取客户端真实 IP
Tomcat + Nginx 反向代理获取客户端真实IP.域名.协议.端口 Nginx 反向代理后,Servlet 应用通过 request.getRemoteAddr() 取到的 IP 是 Ngin ...
- Java正确获取客户端真实IP方法整理
转载自 干货:Java正确获取客户端真实IP方法整理 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apach ...
- PHP获取客户端真实IP地址的方法
php获取客户端IP地址有四种方法,这五种方法分别为 1 2 3 4 REMOTE_ADDR HTTP_CLIENT_IP HTTP_X_FORWARDED_FOR HTTP_VIA REMOTE_A ...
- 获取客户端真实IP方法
2019独角兽企业重金招聘Python工程师标准>>> 我们经常会记录审计日志,那么如何获取客户端真实IP呢?让我们了解一下HTTP协议头吧. 在讨论获取客户端IP 地址前,我们首先 ...
- 获取客户端真实IP地址
Java-Web获取客户端真实IP: 发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限定的时候,需要首先获取该真实的IP. 一般分为两种情况: ...
- 如何获取客户端真实 IP?从 Gin 的一个 Bug 说起
1. 背景 请求 IP 作为用户的身份标识属性之一,是一种非常重要的基础数据.在很多场景下,我们会基于客户端请求 IP 去做网络安全攻击防范或访问风险控制.通常我们可以通过 HTTP 协议 Reque ...
最新文章
- windows10下使用virtualenv虚拟技术,管理多个python版本,多个项目包环境
- elasticsearch给IK分词器添加自定义词汇
- Linux学习总结(五十四)LVS nat 模式搭建
- java cst gmt_“CST”和“GMT”时间的区别?
- why approver preview in Document builder is empty
- 支付宝为何放弃社交梦?
- mac中rabbitmq的安装
- linux下使用过的命令总结(未整理完)
- jquery mobile页面跳转后js不执行的问题
- 牛客网 F-The Biggest Water Problem
- 雅虎团队经验:网站页面性能优化的 34条
- #STM32 LCD12864编程即原理介绍
- 数据挖掘学习--主成分分析
- xshell 密钥身份验证_使用密钥斗篷和大使边缘堆栈进行集中式身份验证
- 几何基础 罗德里格公式
- form表单下的button不设置type会自动提交表单
- mysql cast()与convert() 函数
- addEventListener和addListener的区别
- 解决es查询异常:lasticsearch exception [type=illegal_argument_exception, reason=Can‘t load fielddata on....
- 2021年中国电动剃须刀行业发展现状分析,行业高端化趋势明显「图」