개발자

nodejs - clientIP를 얻고싶습니다.

2022년 11월 18일조회 237

안녕하세요 ! nodejs에서 client ipaddress를 얻고 싶어서 알아보던중에. nginx를 거치게 되면 client의 기존의 ip를 얻어오지 못하고 있습니다 ! 구글링해도 잘 안되서 질문남깁니다 ㅠ - proxy.config proxy_set_header X-Real-IP $proxy_protocol_addr; proxy_set_header X-Forwarded-For $proxy_protocol_addr; - ip 구하는 코드 const ipAddress = req.headers['x-forwarded-for'] || req.socket.remoteAddress; 이렇게 해보고 막힌 상태입니다 !

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

성원님의 프로필 사진

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for X-Forwarded값 위와 같이 수정해보실래요?

profile picture

익명

작성자

2022년 11월 18일

안녕하세요! 말씀해주신 방법도 도전해봤는데 실패했습니다 ㅠ

성원님의 프로필 사진

성원

Software Engineer2022년 11월 18일

X-Forwarded-For에서 client ip 몇번째로 세팅되어있나요? 이렇게 첫번 째로 바꾸고 ex) : X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip 이 값을 주면 혹시 될까요? proxy_set_header X-Forwarded-For $remote_addr

강병진님의 프로필 사진

헤더에서 Origin을 찾으셔야 합니다. express.js 기준으로 req.rawHeaders에 다양한 값들이 array로 들어있는데요, header도 원래는 객체이니, 객체의 개념으로 생각해보면 0번째 인덱스부터 짝수 인덱스가 key이고 1번째 인덱스부터 홀수 인덱스가 직전 인덱스 key에 해당하는 value라고 보시면 됩니다. rawHeaders에서 origin의 인덱스를 찾으시고, 그 인덱스 + 1 에 해당하는 값을 사용하시면 됩니다. 더 좋은 방법이 있다면 다른 분들이 댓글로 달아주실 것 같습니다!

강병진님의 프로필 사진

강병진

GS 52g Studio 개발자2022년 11월 18일

컴퓨터로 보시면 제가 첨부한 스크린샷을 보실 수 있습니다

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!