2013-06-25 3 views
3

http req 개체에서 클라이언트 IP 주소를 얻으려면 어떻게해야합니까?node.js http 요청 개체에서 클라이언트 IP를 가져옵니다.

IE는 :

var util = require('util'), 
    colors = require('colors'), 
    http = require('http'), 
    httpProxy = require('../../lib/node-http-proxy'); 

// 
// Http Server with proxyRequest Handler and Latency 
// 
var proxy = new httpProxy.RoutingProxy(); 
http.createServer(function (req, res) { 
    // GET IP address here 
    // var ip = ?? 
    var buffer = httpProxy.buffer(req); 
    setTimeout(function() { 
    proxy.proxyRequest(req, res, { 
     port: 9000, 
     host: 'localhost', 
     buffer: buffer 
    }); 
    }, 200); 
}).listen(8004); 

답변

7

그냥 항상 req.connection.remoteAddress

5
일반적으로 클라이언트의 IP 주소를 얻을 수있는 올바른 위치입니다

,하지만해야합니다. node.js 앞에 Nginx, Apache 또는 다른 역방향 프록시를 사용하는 경우 req.headers에서 IP 주소를 얻어야 할 수 있습니다. 원격 IP 주소가있는 헤더의 일반적인 이름은 "X-Remote-IP"또는 "X-Originating-IP"이지만 다른 서버는 다른 헤더 이름을 사용합니다.

+1

프록시 서버의 기본 표준은'X-Forwarded-For'입니다. 대부분의 캐싱 프록시는 기본적으로 지원되며 nginx에서 다음과 같이 설정할 수 있습니다 :'proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;' –

관련 문제