zoukankan      html  css  js  c++  java
  • 获得用户的真实IP地址

    /**
    * 获得用户的真实IP地址
    *
    * @access public
    * @return string
    */
    if (!function_exists('get_real_ip'))
    {
    function get_real_ip()
    {
    static $realip = NULL;

    if ($realip !== NULL)
    {
    return $realip;
    }

    if (isset($_SERVER))
    {
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
    {
    $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

    /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */
    foreach ($arr AS $ip)
    {
    $ip = trim($ip);

    if ($ip != 'unknown')
    {
    $realip = $ip;

    break;
    }
    }
    }
    elseif (isset($_SERVER['HTTP_CLIENT_IP']))
    {
    $realip = $_SERVER['HTTP_CLIENT_IP'];
    }
    else
    {
    if (isset($_SERVER['REMOTE_ADDR']))
    {
    $realip = $_SERVER['REMOTE_ADDR'];
    }
    else
    {
    $realip = '0.0.0.0';
    }
    }
    }
    else
    {
    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');
    }
    }

    preg_match("/[d.]{7,15}/", $realip, $onlineip);
    $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';

    return $realip;
    }
    }
  • 相关阅读:
    Misc1
    PXE
    VCL
    pacman usage
    .vimrc的配置
    Windows Server 2012 R2
    Windows 入门杂乱无章版
    VS Code Plugins And Configuration
    「Poetize5」GF弹钢琴
    「Poetize4」上帝造题的七分钟2
  • 原文地址:https://www.cnblogs.com/brady-wang/p/9908484.html
Copyright © 2011-2022 走看看