728x90
반응형
node.Js express로 req를 분석해보자.
1. 사용자 ip 받아오기
- 루프백 서버
const express = require('express');
const app = express();
// IPv6 주소에서 IPv4 주소를 추출하는 함수
function extractIPv4(ip) {
if (ip === '::1') {
return '127.0.0.1';
}else if (ip.includes('::ffff:')) {
return ip.split('::ffff:')[1];
}
return ip;
}
app.get('/', (req, res) => {
// IP 주소 가져오기
const ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
// IPv6 주소에서 IPv4 주소를 추출
const ipv4 = extractIPv4(ip);
// User-Agent 헤더를 이용하여 기기 정보 가져오기
const userAgent = req.headers['user-agent'];
// 결과 출력
res.send(`IP 주소: ${ipv4}<br>기기 정보: ${userAgent}`);
});
결과
- 접속자 본인의 ip
const express = require('express');
const app = express();
const ip = require("ip");
app.get("/myip", (req, res) => {
const myip = ip.address();
// User-Agent 헤더를 이용하여 기기 정보 가져오기
const userAgent = req.headers['user-agent'];
res.send(`IP 주소: ${myip}<br>기기 정보: ${userAgent}`);
});
결과
2. (응용) 클라이언트 요청 정보 받아오기
요청 시, request 정보가 콘솔에 찍히게 된다.
3. (번외) redis에 로그쌓기
- redis모듈 설치 : npm install redis
- 해당 서버에 접속할 때마다 로그 파일 찍히게 하기
반응형
'Backend-dev > nodeJS & express' 카테고리의 다른 글
nodejs로 라우팅 서버 실습해보기! (0) | 2024.07.30 |
---|---|
[javascript] Buffer(버퍼)란? | 장,단점과 노드js를 활용한 예시 (0) | 2024.05.26 |
[javascript] Stream(스트림)이란? | 장,단점과 노드js를 활용한 예시 (0) | 2024.05.25 |
[javascript] Node.js와 express 비교 (0) | 2024.05.25 |
[javascript] 콜 스택과 이벤트 루프 | 동기/비동기 처리 차이? (0) | 2024.05.25 |