Backend-dev/nodeJS & express

[javascript] express로 사용자 req 분석하기

Hannana. 2024. 5. 27. 11:20
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
  • 해당 서버에 접속할 때마다 로그 파일 찍히게 하기
  •  
반응형