您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

你真的了解 IP 吗,PHP 如何严格获取真实用户 IP?

时间:2022-06-27 11:30:10  来源:  作者:快代理

php 里用来获取客户端 IP 的变量有这些:

$_SERVER['HTTP_CLIENT_IP'] 这个头是有的,但是很少,不一定服务器都实现了。客户端可以伪造。

$_SERVER['HTTP_X_FORWARDED_FOR'] 是有标准定义,用来识别经过 HTTP 代理后的客户端 IP 地址,格式:clientip,proxy1,proxy2。详细解释见
http://zh.wikipedia.org/wiki/X-Forwarded-F...。 客户端可以伪造。

$_SERVER['REMOTE_ADDR'] 是可靠的, 它是最后一个跟你的服务器握手的 IP,可能是用户的代理服务器,也可能是自己的反向代理。客户端不能伪造。

客户端可以伪造的参数必须过滤和验证!很多人以为 $_SERVER 变量里的东西都是可信的,其实并不不然,$_SERVER['HTTP_CLIENT_IP'] 和 $_SERVER['HTTP_X_FORWARDED_FOR'] 都来自客户端请求的 header 里面。

如果要严格获取用户真实 ip

在反爬虫,防刷票的时候,客户端可以伪造的东西,我们一律不信任,此为严格获取。

没有套 CDN,用户直连我们的 PHP 服务器

这种情况下用 tcp 层握手的 ip,$_SERVER['REMOTE_ADDR']

自建集群用 Nginx 实现负载均衡的时候

这种情况下,PHP 应用服务器不能对外暴露,我们在 nginx 中实现获取真实 IP 再换发给 PHP 服务器。

location /{   proxy_set_header client-real-ip $remote_addr;}

client-real-ip 可以随意自己命名,我们将 tcp 层中跟 nginx 握手的 ip 转发给 PHP。

使用 CDN,从 PHP 服务器取源的时候

CDN 会转发客户端的握手 ip 过来,各家策略有差异,具体去查 CDN 的文档。

当然我们也可以把需要严格核查的业务绑一个二级域名,单独走我们自己的 nginx 服务器,避开 CDN。

如果要宽松获取用户 ip

这种情况比较简单,也是大部分开源程序使用的方式,因为他们要适应最广泛的部署环境,

依次获取和过滤,$_SERVER['HTTP_CLIENT_IP'],$_SERVER['HTTP_X_FORWARDED_FOR'] 的第一个 ip,$_SERVER['REMOTE_ADDR'],谁先有值先用谁。注意这种方式,客户端可以提交假 ip 来欺骗服务器。

 

PHP 如何验证和过滤客户端提交过来的 ip

推荐使用 PHP 自带的过滤器,
http://php.NET/manual/zh/function.filter-v...

$ip = filter_var($originIp, FILTER_VALIDATE_IP)

一点小技巧

我们存 IP 到数据库的时候可以使用 ip2long() 把 ip 地址转换成数字,搜索和排序可以更快。要显示到前端的时候再 long2ip() 转换回来



Tags:IP   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
东莞证券IPO再按暂停键
东莞证券的IPO之路,漫长且曲折。近日,广东锦龙发展股份有限公司发布公告称,参股公司东莞证券股份有限公司因其暂缓提交IPO申请文件中记录的财务资料,东莞证券IPO审核进入中止状...【详细内容】
2024-04-17  Search: IP  点击:(5)  评论:(0)  加入收藏
IPO大变化!上市门槛提高了
上市条件和板块定位是资本市场服务实体经济、支持企业科技创新、推动高质量发展的重要制度安排。与此同时,不同板块间的差异化发展,健全完善多层次资本市场体系,也是全面注册制...【详细内容】
2024-04-12  Search: IP  点击:(8)  评论:(0)  加入收藏
JavaScript的异步编程常见模式
在JavaScript中,异步编程是一种处理长时间运行操作(如网络请求或I/O操作)的常见方式。它允许程序在等待这些操作完成时继续执行其他任务,从而提高应用程序的响应性和性能。JavaS...【详细内容】
2024-04-12  Search: IP  点击:(11)  评论:(0)  加入收藏
iPhone Wi-Fi 无法打开?这五种原因及解决方法,让你快速恢复网络!
当 iPhone 无法打开 Wi-Fi 时,可能涉及多种原因,包括软件问题、网络设置、硬件故障等。下面将详细介绍可能导致 iPhone 无法打开 Wi-Fi 的各种原因,并提供相应的解决方法,帮助你...【详细内容】
2024-04-11  Search: IP  点击:(6)  评论:(0)  加入收藏
iPhone 来电拦截:从系统到应用,全面保护你的隐私!
iPhone手机提供了多种方法来拦截陌生来电,用户可以根据自己的需求和偏好选择合适的方式。下面我将详细介绍iPhone手机拦截陌生来电的几种方法,帮助你更好地保护隐私和管理通讯...【详细内容】
2024-04-10  Search: IP  点击:(7)  评论:(0)  加入收藏
iPhone 来电拦截:从系统到应用,全面保护你的隐私!
iPhone手机提供了多种方法来拦截陌生来电,用户可以根据自己的需求和偏好选择合适的方式。下面我将详细介绍iPhone手机拦截陌生来电的几种方法,帮助你更好地保护隐私和管理通讯...【详细内容】
2024-04-10  Search: IP  点击:(7)  评论:(0)  加入收藏
17 个你需要知道的 JavaScript 优化技巧
你可能一直在使用JavaScript搞开发,但很多时候你可能对它提供的最新功能并不感冒,尽管这些功能在无需编写额外代码的情况下就可以解决你的问题。作为前端开发人员,我们必须了解...【详细内容】
2024-04-03  Search: IP  点击:(7)  评论:(0)  加入收藏
苹果今天确认!正式放弃这 iPhone
2010 年的 6 月 8 日,iPhone 4 正式发布!这款被大家称为 “ 改变世界 ” 的苹果巅峰之作,在乔布斯的带领下,风靡全球...凭借这款 iPhone ,苹果成功进入了全球市场,iPhone 流行的风...【详细内容】
2024-04-03  Search: IP  点击:(14)  评论:(0)  加入收藏
菜鸟撤回IPO,阿里斥270亿“安抚”投资人,蔡崇信:全力支持菜鸟发展
菜鸟未能如外界预期的那样敲响港交所的铜锣。图片来源:时代财经摄3月26日傍晚,阿里巴巴集团公告称,其物流子公司菜鸟智能物流网络有限公司已撤回在香港证券交易所的首次公开募...【详细内容】
2024-03-27  Search: IP  点击:(29)  评论:(0)  加入收藏
IPO持续“零上会” 新股发行重质胜于重量
◎记者 徐蔚IPO“零上会”现象在持续。根据预告,本周亦无IPO项目安排上会,这意味着沪深北交易所将连续第6周没有项目上会。同时,被终止审核的公司数量则继续保持高位。受访的投...【详细内容】
2024-03-26  Search: IP  点击:(19)  评论:(0)  加入收藏
▌简易百科推荐
学生偷看“不良网站”,手机上3个痕迹无法清除,网友:咋不早说
众所周知,中国的常规教育中,总是“谈性色变”,但在这个信息爆炸的互联网时代,即便是一些年纪很小的孩子,也能轻易接触到一些所谓的不良网站,因此这一方面的教育缺失,其实是很可怕的...【详细内容】
2024-03-28    叶姐生活指南  Tags:不良网站   点击:(18)  评论:(0)  加入收藏
什么是网络中的路由器?核心功能解释
路由器是互联网连接的核心元素,是一种允许多个设备连接到互联网,并促进将数据包转发到各自的目标地址的设备。使用动态路由技术,路由器检查数据并在各种可用路径中选择最有效的...【详细内容】
2024-03-07    千家网  Tags:路由器   点击:(34)  评论:(0)  加入收藏
过年该不该升级Wi-Fi 7路由?看完就知道
打开电商网站不难发现,从2023年第三季度到现在,Wi-Fi 7路由器新品越来越多。而且价格不再是高高在上,已经基本和Wi-Fi 6路由价格差不多了。看到这些Wi-Fi 7新品路由,不少朋友就...【详细内容】
2024-02-27    中关村在线  Tags:Wi-Fi   点击:(44)  评论:(0)  加入收藏
聊聊 Kubernetes 网络模型综合指南
这篇详细的博文探讨了 Kubernetes 网络的复杂性,提供了关于如何在容器化环境中确保高效和安全通信的见解。译自Navigating the Network: A Comprehensive Guide to Kubernete...【详细内容】
2024-02-19  云云众生s  微信公众号  Tags:Kubernetes   点击:(42)  评论:(0)  加入收藏
SSL协议是什么?关于SSL和TLS的常见问题解答
SSL(安全套接字层)及其后继者TLS(传输层安全)是用于在联网计算机之间建立经过身份验证和加密的链接的协议。尽管SSL协议在 1999年已经随着TLS 1.0的发布而被弃用,但我们仍将这些...【详细内容】
2024-02-06  IDC点评网    Tags:SSL协议   点击:(73)  评论:(0)  加入收藏
从零开始了解网络协议:TCP/IP详解
从零开始了解网络协议:TCP/IP详解 在当今数字化的时代,网络协议已经成为我们生活中不可或缺的一部分。作为互联网的基础,网络协议规定了数据如何在不同的网络设备之间传输。TC...【详细内容】
2024-02-01    简易百科  Tags:TCP/IP   点击:(62)  评论:(0)  加入收藏
BGP路由属性:互联网路由的灵活控制器
在互联网的庞大网络中,边界网关协议(BGP)是确保不同自治系统(AS)间路由信息有效交换的关键协议。然而,BGP的功能远不止于此。其核心组成部分,即BGP路由属性,赋予了BGP强大的灵活性,使...【详细内容】
2024-01-26  诺诺爱生活    Tags:互联网路由   点击:(44)  评论:(0)  加入收藏
简易百科之什么是网络延迟?
简易百科之什么是网络延迟?随着互联网的普及和发展,网络已经成为我们生活中不可或缺的一部分。然而,我们在使用网络时可能会遇到一种情况,那就是网络延迟。那么,什么是网络延迟呢...【详细内容】
2024-01-24    简易百科  Tags:网络延迟   点击:(162)  评论:(0)  加入收藏
网络延迟与网络速度有什么区别?分享具体的答案
通常,许多人抱怨网速测试。速度还是不错的,但是他们玩游戏的时候怎么会卡住,还是断开连接等等问题,这一系列问题始终困扰着大家。那么,网络延迟与网络速度有什么区别呢?请不要担心...【详细内容】
2024-01-24  萌新小郭    Tags:网络延迟   点击:(53)  评论:(0)  加入收藏
揭秘IP地址的网络威胁与攻击类型
在当今数字化时代,网络攻击已经成为网络安全的一大挑战。IP地址,作为互联网通信的基础,也成为网络威胁和攻击的焦点之一。本文将深入探讨不同类型的网络威胁和攻击,以及如何防范...【详细内容】
2024-01-22  IP数据云    Tags:IP地址   点击:(88)  评论:(0)  加入收藏
站内最新
站内热门
站内头条