1. 程式人生 > >使用nginx伺服器時,php獲取使用者ip的方法

使用nginx伺服器時,php獲取使用者ip的方法

在nginx中設定:

proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

後端程式可以從Server變數HTTP_X_REAL_IP和HTTP_X_FORWARDED_FOR中獲取使用者的ip地址。

HTTP_X_REAL_IP的值是nginx得到的使用者REMOTE_ADDR

附上一段php獲取客戶端ip的簡易程式碼

function getClientIP () {
        if (isset ($_SERVER ['HTTP_X_FORWARDED_FOR'])){
            $clientIP = $_SERVER ['HTTP_X_FORWARDED_FOR'];
        }
        elseif (isset ($_SERVER ['HTTP_X_REAL_IP'])){
            $clientIP = $_SERVER ['HTTP_X_REAL_IP'];
        }
        else {
            $clientIP = $_SERVER['REMOTE_ADDR'];
        }
        return $clientIP;
    }