首页 > 其他分享 >获取用户IP

获取用户IP

时间:2024-07-10 09:44:56浏览次数:17  
标签:HTTP FORWARDED ip 用户 getenv 获取 IP SERVER

/**
     * @return array|mixed|string|string[]
     */
    public function getClientIP()
    {
        if (@$_SERVER["HTTP_ALI_CDN_REAL_IP"]) {
            $ip = $_SERVER["HTTP_ALI_CDN_REAL_IP"];
        } elseif (@$_SERVER["HTTP_X_FORWARDED_FOR"] ?: false) {
            $ips = explode(',', $_SERVER["HTTP_X_FORWARDED_FOR"]);
            $ip = $ips[0];
        } elseif (@$_SERVER["HTTP_CDN_SRC_IP"] ?: false) {
            $ip = $_SERVER["HTTP_CDN_SRC_IP"];
        } elseif (getenv('HTTP_CLIENT_IP')) {
            $ip = getenv('HTTP_CLIENT_IP');
        } elseif (getenv('HTTP_X_FORWARDED')) {
            $ip = getenv('HTTP_X_FORWARDED');
        } elseif (getenv('HTTP_FORWARDED_FOR')) {
            $ip = getenv('HTTP_FORWARDED_FOR');
        } elseif (getenv('HTTP_FORWARDED')) {
            $ip = getenv('HTTP_FORWARDED');
        } else {
            $ip = $_SERVER['REMOTE_ADDR'];
        }

        $ip = str_replace(['::ffff:', '[', ']'], ['', '', ''], $ip);
        return $ip;
    }

 

标签:HTTP,FORWARDED,ip,用户,getenv,获取,IP,SERVER
From: https://www.cnblogs.com/zhangzhijian/p/18293226

相关文章

  • JS正则从地址中获取省、市、县
    varadd1='四川省西昌市航天路';varadd2='北京市北京市东城区前门大街1号'varadd3='新疆维吾尔自治区乌鲁木齐市天山区中山路479号';varadd4='四川省成都市双流县幸福社区23号';varadd5='香港特别行政区中西区尖沙嘴路';varreg=/.+?(省......
  • 2024短视频IP快速起号实战课,0基础打造爆款内容设计+运营
    摘要:本教程旨在系统阐述从零基础到实现短视频IP快速起号的全过程,涵盖内容设计、粉丝运营、变现策略及关键技术点,共计23节课程,为短视频创作者及企业营销人员提供一套全面而实用的实战指南。第一章:短视频IP起号基础起号意义解析:深入探讨短视频平台中快速起号对于品牌建立、......
  • 共享ip服务器实现外网访问
    信息服务器厂商:炎火云系统:Windows-2012R2-Datacenter-cn面板:phpstudy共享ip服务器实现外网访问思路通过nat端口映射将内网端口映射到共享ip(即公网ip)端口,实现使用共享ip+端口访问服务器步骤首先确定好服务器端口我这里用的是默认的80端口接着要在防火墙里面放行端口下面......
  • 26、Django内建用户系统
    官方文档:https://docs.djangoproject.com/en/2.2/topics/auth 基本字段模型类位置:--fromdjango.contrib.auth.modelsimportUser   ......
  • 2024/7/9 noip模拟鳃
    T130pts教训:存图双向边数组要开2倍(就是这么简单!)还害得我调了半个小时才发现,改后accode:usingnamespacestd;intn,a,b,anode,bnode;constintmaxn=1e6+10;structedge{ intto,next;}e[maxn];intnodeflag=-1;inthead[maxn],siz[maxn],cnt,ans[maxn];voidadd......
  • Rockchip RK3588 - Rockchip Linux SDK脚本分析
    ----------------------------------------------------------------------------------------------------------------------------开发板:ArmSoM-Sige7开发板eMMC:64GBLPDDR4:8GB显示屏:15.6英寸HDMI接口显示屏u-boot:2017.09linux:5.10-------------------------------......
  • [NodeJS] JavaScript模块化
    JavaScript诞生于1995年,一开始只是用于编写简单的脚本。随着前端开发任务越来越复杂,JavaScript代码也越来越复杂,全局变量冲突、依赖管理混乱等问题变得十分突出,模块化成为一个必不可少的功能。模块化发展史与方案对比YUI与JQuery2006年,雅虎开源了组件库YUILibrary,使用类似......
  • 【JavaScript脚本宇宙】状态管理利器:JavaScript 库全面解析
    提升项目效率与可维护性:JavaScript状态管理库大揭秘前言在现代前端开发中,状态管理是一个至关重要的话题。随着复杂性的增加,有效地管理应用程序的状态变得越来越具有挑战性。本文将介绍一些流行的JavaScript库,这些库提供了各种方式来管理状态和数据流。欢迎订阅专栏:Ja......
  • 普通人的短视频带货课 传统商家打造iP人设直播带货
    亲爱的朋友们,今天我要带大家深入了解抖音短视频带货的奥秘。这不仅仅是一门课程,这是一次开启财富之门的旅程。让我们一起探索8种常用变现方式与直播带货技巧,让你在这个充满机遇的平台上大放异彩。这门课程是你在抖音短视频带货领域的指南针。让我们一起学习、成长,最终在这个......
  • 洛谷P1308 [NOIP2011 普及组] 统计单词数C语言
    #include<stdio.h>#include<string.h>#include<ctype.h>intmain(){charcheck[11];charstr[1000001];intf_num=0;intcount=0;inti=0;intj=0;intp=1;gets(check);gets(str);......