zoukankan      html  css  js  c++  java
  • PHP获取客户端的IP地址

    首先我们来了解相关变量的含义:
    
    $_SERVER['REMOTE_ADDR']:浏览当前页面的用户计算机的ip地址
    $_SERVER['HTTP_CLIENT_IP']:客户端的ip
    $_SERVER['HTTP_X_FORWARDED_FOR']:浏览当前页面的用户计算机的网关
    $_SERVER['HTTP_X_REAL_IP']:nginx 代理模式下,获取客户端真实IP
    
    下面我们通过简单的代码示例来介绍PHP获取客户端IP地址的方法。
    /**
     *  获取客户端IP地址
     */
    function real_ip()
    {
    
        $ip = $_SERVER['REMOTE_ADDR'];
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#d{1,3}.d{1,3}.d{1,3}.d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
            foreach ($matches[0] AS $xip) {
                if (!preg_match('#^(10|172.16|192.168).#', $xip)) {
                    $ip = $xip;
                    break;
                }
            }
        } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
            $ip = $_SERVER['HTTP_CLIENT_IP'];
        } elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CF_CONNECTING_IP'])) {
            $ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
        } elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/', $_SERVER['HTTP_X_REAL_IP'])) {
            $ip = $_SERVER['HTTP_X_REAL_IP'];
        }
        return $ip;
    }

     
  • 相关阅读:
    UE4_简易AI_玩家死亡动画bug修复
    UE4_简易AI_Ai攻击
    pikachu-SSRF
    pikachu-XXE漏洞
    pikachu-PHP反序列化
    pikachu-Over permission(越权漏洞)
    pikachu-不安全的文件下载和上传
    pikachu-File Inclusion(文件包含漏洞)
    Web安全之RCF(远程命令,代码执行漏洞)
    Web安全之SQL Inject 2
  • 原文地址:https://www.cnblogs.com/sgm4231/p/10043827.html
Copyright © 2011-2022 走看看