php怎么获取客户端的真实IP详解编程语言
2023-06-13 09:11:04 时间
HTTP_CLIENT_IP头是有的,但未成标准,不一定服务器都实现。
HTTP_CLIENT_IP头都是可以伪造的,所以就会造成获取IP不是真实IP,但并不意味着它们一无是处,生产环境中很多服务器隐藏在负载均衡节点后面,一般负载均衡节点会把前端实际的IP地址通过HTTP_CLIENT_IP,通过HTTP_CLIENT_IP只能获取的负载均衡节点的IP地址。
HTTP_X_FORWARDED_FOR 是有标准定义,用来识别经过HTTP代理后的客户端IP地址,格式:clientip,proxy1,proxy2。https://zh.wikipedia.org/wiki/X-Forwarded-For
**HTTP_***头都很容易伪造。
REMOTE_ADDR 是可靠的, 它是最后一个跟你的服务器握手的IP,可能是用户的代理服务器,也可能是自己的反向代理。所以尽量记录相关信息进行判断:
if (array_key_exists($key, $_SERVER)) { foreach (explode(,, $_SERVER[$key]) as $ip) { $ip = trim($ip); // filter_var PHP 原生过滤方法 // filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) // FILTER_FLAG_NO_PRIV_RANGE - 要求值是 RFC 指定的私域 IP (比如 192.168.0.1) // FILTER_FLAG_NO_RES_RANGE - 要求值不在保留的 IP 范围内。该标志接受 IPV4 和 IPV6 值。 if (filter_var($ip, FILTER_VALIDATE_IP)) { $AllIP[$key] = $ip; $arr[AllIP] = $AllIP; return $arr; }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16406.html
cjavaphp相关文章
- qq登录钓鱼php网页,PHP+JS模仿登录钓鱼「建议收藏」
- 用PHP获取客户端真实IP的函数代码分享
- PHP Fatal error: Uncaught Error: Call to undefined function pcntl_fork().. 开启php pcntl扩展实现多进程详解编程语言
- PHP和MySQL编程:合理使用IF语句(phpmysqlif)
- 程序快速学会在Linux中执行PHP程序(linux执行php)
- 动态变更Linux动态IP更新:轻松实现客户端IP变更(linux客户端ip)
- 用Redis作为PHP缓存:提高性能和效率(php中redis做缓存)
- PHP的Mysql回滚技巧:让你的数据安全无忧(mysql回滚php)
- 解决PHP输出MSSQL数据中文乱码问题(php输出MSSQL乱码)
- PHP程序实现MSSQL数据库的连接(php程序连接mssql)
- PHP踩坑指南:如何摆脱MSSQL的困扰?(php 没有mssql)
- PHP实现连接MS SQL数据库的实战指南(php 打开mssql)
- PHP如何访问MS SQL服务器(php怎么访问mssql)
- 学习PHP掌握MSSQL数据库操作的技巧(php如何操作mssql)
- PHP连接MSSQL数据库快速开启(php mssql 打开)
- PHP编程实现Redis集合操作(redis集合操作php)
- 借助Oracle和PHP打造高效网络系统(oracle php系统)
- 如何在PHP中进行身份认证
- php下获取客户端ip地址的函数
- php生成随机密码的几种方法
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- php中获取远程客户端的真实ip地址的方法
- php中禁止单个IP与ip段访问的代码小结
- PHP设计模式之迭代器模式的深入解析
- PHP获取php,mysql,apche的版本信息示例代码
- php使用PDO方法详解
- PHP实现检测客户端是否使用代理服务器及其匿名级别
- PHP导出Excel示例分享