午灬夏 发表于 2012-4-12 10:23:07

如何获取客户端真实IP?

在system/helpers/common_helper.php文件

if ( ! function_exists('get_ip'))
{
    function get_ip()
    {
      $CI =& get_instance();
      if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
            $ip=$_SERVER['HTTP_CLIENT_IP'];
      } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
         }else {
            $ip=$_SERVER['REMOTE_ADDR'];
         }
      return $ip;
    }
}

不知道这个方法获取的IP地址是否真实?

steven_mlc 发表于 2012-4-12 11:16:46

$this->input->ip_address();

lynn.wang 发表于 2012-4-12 11:30:30

public function getInfo ()
        {
                $proxy="";
                $IP = "";
                if (isSet($_SERVER))
                {
                        if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"]))
                        {
                                $IP = $_SERVER["HTTP_X_FORWARDED_FOR"];
                                $proxy= $_SERVER["REMOTE_ADDR"];
                        }
                        elseif (isSet($_SERVER["HTTP_CLIENT_IP"]))
                        {
                                $IP = $_SERVER["HTTP_CLIENT_IP"];
                        }
                        else
                        {
                                $IP = $_SERVER["REMOTE_ADDR"];
                        }
                }
                else
                {
                        if ( getenv( 'HTTP_X_FORWARDED_FOR' ) )
                        {
                                $IP = getenv( 'HTTP_X_FORWARDED_FOR' );
                                $proxy = getenv( 'REMOTE_ADDR' );
                        }
                        elseif ( getenv( 'HTTP_CLIENT_IP' ) )
                        {
                                $IP = getenv( 'HTTP_CLIENT_IP' );
                        }
                        else
                        {
                                $IP = getenv( 'REMOTE_ADDR' );
                        }
                }
                if (strstr($IP, ','))
                {
                   $ips = explode(',', $IP);
                   $IP = $ips;
                }
                $RemoteInfo=$IP;
                $RemoteInfo=@GetHostByAddr($IP);
                $RemoteInfo=$proxy;
                return $RemoteInfo;
        }

午灬夏 发表于 2012-4-12 11:31:48

steven_mlc 发表于 2012-4-12 11:16 static/image/common/back.gif
$this->input->ip_address();

额,原来CI已经有了啊!

午灬夏 发表于 2012-4-12 11:35:29

lynn.wang 发表于 2012-4-12 11:30 static/image/common/back.gif
public function getInfo ()
        {
                $proxy="";


谢谢,不过CI已经自带有了! 呵呵~

lynn.wang 发表于 2012-4-12 15:39:02

呵呵

IT屌丝 发表于 2016-6-4 14:17:57

呵呵
页: [1]
查看完整版本: 如何获取客户端真实IP?