PHP获取客户端IP

原创 zhaoliang  2015-04-02 10:29  阅读 866 views 次

比较全面的IP提取方法

    public static function getIp() {
        $ip = '';
        if (isset($_SERVER)) {
            if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
                $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
                if (strstr($ip, ",")) {
                    $x = explode(',', $ip);
                    $ip = trim(end($x));
                }
            } elseif (isset($_SERVER["HTTP_CLIENT_IP"])) {
                $ip = $_SERVER["HTTP_CLIENT_IP"];
            } elseif (isset($_SERVER["REMOTE_ADDR"])) {
                $ip = $_SERVER["REMOTE_ADDR"];
            } else {
                $ip = $_SERVER["SSH_CLIENT"];
            }
        } else {
            if (getenv("HTTP_X_FORWARDED_FOR")) {
                $ip = getenv("HTTP_X_FORWARDED_FOR");
            } elseif (getenv("HTTP_CLIENT_IP")) {
                $ip = getenv("HTTP_CLIENT_IP");
            } else {
                $ip = getenv("REMOTE_ADDR");
            }
        }
        if (!preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $ip)) {
            $ip = '';
        }
        return $ip;
    }

 

本文地址:http://blog.58cm.cn:8088/archives/29.html
版权声明:本文为原创文章,版权归 zhaoliang 所有,欢迎分享本文,转载请保留出处!

评论已关闭!