//获取客户端ip
  function getIp() {
  $ip1 = getenv("REMOTE_ADDR")?getenv("REMOTE_ADDR"):"none";
  $ip2 = getenv("HTTP_X_FORWARDED_FOR")?getenv("HTTP_X_FORWARDED_FOR"):"none";
  $ip3 = getenv("HTTP_CLIENT_IP")?getenv("HTTP_CLIENT_IP"):"none";
  if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown") {
   return $ip1;
  }
  elseif (isset($ip2) && $ip2 != "none" && $ip2 != "unknown") {
   return $ip2;
  }
  elseif (isset($ip3) && $ip3 != "none" && $ip3 != "unknown") {
   return $ip3;
  }
  else {
  return "none";
  }
}

解决方案 »

  1.   

    function getip()
    {
    return !empty($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : (!empty($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']);
    }
      

  2.   

    $_SERVER['HTTP_CLIENT_IP']和$_SERVER['ROMOTE_ADDR']有什么区别啊??
    $_SERVER['HTTP_X_FORWARDED_FOR']是什么意思啊??
    $_SERVER['HTTP_CLIENT_IP']和$_SERVER['HTTP_X_FORWARDED_FOR']我的书上都没有诶!
      

  3.   

    function GetIP(){
                 if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
                       $ip = getenv("HTTP_CLIENT_IP");
                 else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
                       $ip = getenv("HTTP_X_FORWARDED_FOR");
                 else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
                       $ip = getenv("REMOTE_ADDR");
                 else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
                       $ip = $_SERVER['REMOTE_ADDR'];
                 else
                      $ip = "unknown";
                 return($ip);
    }
      

  4.   

    不错,就是这三个IP地址,可以准确得到公网IP和私网IP
      

  5.   

    $_SERVER['HTTP_CLIENT_IP']和$_SERVER['ROMOTE_ADDR']有什么区别啊??
    $_SERVER['HTTP_X_FORWARDED_FOR']是什么意思啊??
    $_SERVER['HTTP_CLIENT_IP']和$_SERVER['HTTP_X_FORWARDED_FOR']我的书上都没有诶!
    我看那个叫zhiin() ouk.cn () 写的蛮简单的,问上面的几个程序到底哪个好啊??