宝马娱乐在线112222 > 网络应用 > php 获取客户端的ip地址程序代码

原标题:php 获取客户端的ip地址程序代码

浏览次数:171 时间:2019-10-01

/**
 * 获得用户的真实IP地址
 *
 * @return  string
 */
function 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;
}

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

 代码如下

function getRealIpAddr()
{
  if (!emptyempty($_SERVER['HTTP_CLIENT_IP']))
  {
    $ip=$_SERVER['HTTP_CLIENT_IP'];
  }
  elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))
  //to check ip is pass from proxy
  {
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
  }
  else
  {
    $ip=$_SERVER['REMOTE_ADDR'];
  }
  return $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');
  }
 }

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

 代码如下

 return $realip;
}

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

 

本文由宝马娱乐在线112222发布于网络应用,转载请注明出处:php 获取客户端的ip地址程序代码

关键词:

上一篇:宝马娱乐在线112222:删除textarea回车与换行代码

下一篇:没有了