node.js Express에서 현재 요청의 호스트 이름을 가져옵니다.
여기서 간단한 내용을 찾을 수는 있지만 응답을 보내는 요청 개체가 요청된 호스트 이름을 가져올 수 있는 방법을 찾을 수 없습니다.
사용자가 node.js에서 현재 방문 중인 호스트 이름을 알 수 있습니까?
OS 모듈을 사용할 수 있습니다.
var os = require("os");
os.hostname();
http://nodejs.org/docs/latest/api/os.html#os_os_hostname 을 참조하십시오.
주의사항:
IP 주소로 작업할 수 있는 경우 -- 컴퓨터에 여러 개의 네트워크 카드가 있을 수 있습니다. 지정하지 않으면 노드가 모든 네트워크 카드를 수신하므로 요청이 들어오기 전에 어떤 NIC에서 수신되었는지 알 수 없습니다.
호스트 이름은 DNS 문제입니다. 여러 DNS 별칭이 동일한 컴퓨터를 가리킬 수 있습니다.
HTTP 요청을 말하는 경우 다음에서 요청 호스트를 찾을 수 있습니다.
request.headers.host
하지만 그것은 들어오는 요청에 의존합니다.
자세한 내용은 http://nodejs.org/docs/v0.4.12/api/http.html#http.ServerRequest 에서
컴퓨터/네이티브 정보를 찾고 있다면 프로세스 개체를 사용해 보십시오.
다른 방법이 있습니다.
req.hostname
Express Docs에서 그것에 대해 읽어보세요.
Linux에서 정규화된 도메인 이름이 필요하고 HTTP 요청이 없는 경우 다음을 사용할 수 있습니다.
var child_process = require("child_process");
child_process.exec("hostname -f", function(err, stdout, stderr) {
var hostname = stdout.trim();
});
먼저, 답변을 제공하기 전에 헤더를 신뢰함으로써 피싱과 같은 보안 취약성에 대한 문을 열고 있다는 사실에 대해 솔직하게 말씀드리고 싶습니다.따라서 리디렉션을 위해 먼저 URL이 인증되었는지 확인하지 않고 헤더의 값을 사용하지 마십시오.
그러면 운영 체제 호스트 이름이 DNS 호스트 이름과 반드시 일치하지 않을 수 있습니다.실제로 하나의 IP에 둘 이상의 DNS 이름이 있을 수 있습니다.따라서 HTTP 목적을 위해 운영 체제 구성에서 컴퓨터에 할당된 호스트 이름을 사용할 수 있다는 보장은 없습니다.
제가 생각할 수 있는 최선의 선택은 당신의 HTTP 수신기 공용 IP를 얻고 DNS를 통해 이름을 해결하는 것입니다.참조dns.reverse
자세한 내용은 메서드를 참조하십시오.그러나 IP에는 여러 개의 이름이 연결되어 있을 수 있습니다.
아래 코드를 사용하여 호스트를 가져올 수 있습니다.
request.headers.host
저는 당신이 원하는 것은 교차 오리진 요청을 식별하는 것이고, 대신 오리진 헤더를 사용하는 것이라고 생각합니다.
const origin = req.get('origin');
이를 통해 요청 클라이언트 측 URL을 얻을 수 있습니다.
측은 클이은 URL 을수있습에서 하실 수 .headers
의 시대의request
이 재이있는인.origin
그래서:
request.headers.origin
언급URL : https://stackoverflow.com/questions/7507015/get-hostname-of-current-request-in-node-js-express
'sourcecode' 카테고리의 다른 글
Postgre를 완전히 제거합니다.Mac OS X Lion의 SQL 9.0.4? (0) | 2023.05.09 |
---|---|
고정 크기 컨테이너를 채우도록 동적 텍스트 자동 크기 조정 (0) | 2023.05.09 |
엑셀에서 비어 있지 않은 모든 셀을 선택하려면 어떻게 해야 합니까? (0) | 2023.05.04 |
Java에서 문자열을 분할하려면 어떻게 해야 합니까? (0) | 2023.05.04 |
Windows 서비스를 쉽게 디버그할 수 있는 방법 (0) | 2023.05.04 |