php中的这个函数REMOTE_ADDR为什么获取的IP是::1呢??
echo getenv("REMOTE_ADDR");echo "<br>";

解决方案 »

  1.   

    是不是开了什么防火墙啦之类的玩意...用这个试试.function getIP() {
      $IP = '';
      if (getenv('HTTP_CLIENT_IP')) {
        $IP =getenv('HTTP_CLIENT_IP');
      } elseif (getenv('HTTP_X_FORWARDED_FOR')) {
        $IP =getenv('HTTP_X_FORWARDED_FOR');
      } 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'];
      }
    return $IP;
    }
      

  2.   

    看此帖
    http://topic.csdn.net/u/20091116/11/1ce3ed18-5f68-4613-9ffd-87c4dcad15b1.html
      

  3.   

    这是IPv6的地址吧,web服务器和操作系统都开启了ipv6支持,通过http://localhost(原因不明,有的时候真会把localhost解析到IPv6去)访问网站时可能会出现。
      

  4.   

    直接用这个试试  $IP = $_SERVER['REMOTE_ADDR'];