IP 제한 정보

1465 단어
3개 매개변수 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.jianshu.com"-H "X-Forwarded-For:8.8.8.8"-H "CLIENT-IP:8.8.8.8"

좋은 웹페이지 즐겨찾기