2012-09-24 2 views
7

좋아, 그래서 내 서버에 만들어지고 요청의 호스트 이름을 얻기 위해 Node.js를 꽤 쉽게 보인다Nodejs 서버 호스트 이름

app.get('/', function(req,res){ 
    console.log(req.headers.host); 
}); 

내 실제 HTTP의 호스트 이름을 결정하는 쉬운 방법이 있나요 섬기는 사람? 예를 들어, 서버가 주소 http://localhost:3000에서 실행 중입니다. 프로그래밍 방식으로이 주소를 확인할 수 있습니까? expressjs를 사용하고 있습니다.

답변

12

예.

var express = require('express'), 
    app = express(), 
    server = require('http').createServer(app); 

server.listen(3000, function(err) { 
     console.log(err, server.address()); 
}); 

인쇄해야

{ address: '0.0.0.0', family: 'IPv4', port: 3000 } 
당신은 또한 다음에 의하여 운영 체제의 호스트 이름을 retreive 수

;

require('os').hostname(); 
+0

대단히 감사합니다. 터미널에서 "localhost host"를 수행하면 "localhost have address 127.0.0.1"응답을 얻지 만 server.address()는 "0.0.0.0"을 생성합니다. 불일치의 이유가 있습니까? –

+1

왜 그것이 0.0.0.0으로 해결되는지 모르겠다. Windows가 0.0.0.0의 IP 주소에 대한 오류를 발생시키는 것처럼 주소가 포함 된 TCP 소켓을 수신 대기하려고 할 때 문제가 발생했다. 0.0.0.0을 127.0.0.1에 매핑 할 수 있습니다. 0.0.0.0은 여러 가지 이유로 발생할 수 있습니다. 이는 시스템의 모든 인터페이스를 의미 할 수 있습니다. 또한 IP가 컴퓨터와 관련이 있다는 것을 의미 할뿐만 아니라 잘 나가 그것에 한 짧은 연구에서 잘. –

+1

나를위한'localhost'는'{address : '::', family : 'IPv6', port : 5000}'과 같습니다. – ptf