2015-01-25 3 views
1

Node.js를 배우고 있습니다. 웹 사이트를 만드는 동안 로컬로 웹 사이트를 실행합니다 (localhost). 배포가 완료되면 다른 서버에서 실행됩니다. 내 질문은, 요청이 로컬 호스트에서 또는 노드에서 아닌지 어떻게 확인합니까? ASP.NET에서는 Request.IsLocal을 사용할 수 있습니다. 나는 노드에서 어떻게하는지 알아 내려고 노력하고있다.Node.js 앱에서 요청이 로컬인지 확인

감사합니다.

답변

2

서버 주소를 얻으려면 server.address()이 있습니다. 모두가 현재 연결의 종류에 따라 (A remoteAddress 속성) 원격 주소를 보유 수로

그리고 requestconnectionsocket 객체가 있습니다.

그러나 서버가 역방향 프록시를 사용하는 경우 해당 헤더에서 서버를 당겨야합니다. 대부분 x-forwarded-for입니다. 그러나 나는 프록시가 연결되어 있는지 여부를 모르겠다.

그래서, 결론, 당신의 라인을 따라 뭔가를 할 거라고 :

function cliAddress(req) { 
    return req.connection.remoteAddress || req.socket.remoteAddress || req.headers['x-forwarded-for']; 
} 

server.isLocal = function(request) { 
    return server.address() === cliAddress(req); 
} 

을 그리고 당신은 express.js ...

+0

를 사용하는 경우 나 명시 적 사용하고 있습니다. 그러나 포함 된 링크를 이해할 수 없습니다. 'request'에'connection' 또는'socket' 객체가 보이지 않습니다. –

관련 문제