關于IP限制

三個參數
HTTP_CLIENT_IP
HTTP_X_FORWARDED_FOR
REMOTE_ADDR

服務器IP獲取

function _get_client_ip() {
        $clientip = '';
        if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
            $clientip = getenv('HTTP_CLIENT_IP');
        } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
            $clientip = getenv('HTTP_X_FORWARDED_FOR');
        } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
            $clientip = getenv('REMOTE_ADDR');
        } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
            $clientip = $_SERVER['REMOTE_ADDR'];
        }

        preg_match("/[\d\.]{7,15}/", $clientip, $clientipmatches);
        $clientip = $clientipmatches[0] ? $clientipmatches[0] : 'unknown';
        return $clientip;
    }

很多服務器端一般都采用了$_SERVER['REMOTE_ADDR']來獲取客戶端的真實ip,這是在傳輸層就已經決定的地址,無法通過CURL進行修改。remote_addr并不一定就是客戶端的真實IP,不過它是真實的一個地址( 最后一個代理服務器 IP)。

簡單IP偽造

curl "http://www.lxweimin.com" -H "X-Forwarded-For:8.8.8.8" -H "CLIENT-IP:8.8.8.8"

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容