내가 명시한 응용 프로그램에서 클라이언트의 IP 주소를 얻는 가장 좋은 방법은 SOF와 docs가 표시하는대로 req.ip
& req.connection.remoteAddress
인 것입니다. 그 차이점과 내가 사용해야 할 점이 무엇인지 잘 모릅니다.클라이언트의 IP 주소를 얻는 가장 좋은 방법은 req.ip 또는 req.connection.remoteAddress입니까?
답변
는 요청의 출처 (클라이언트)를 나타내는 프록시 서버가 설정 한 헤더도 고려하여 실제 클라이언트 IP 주소를 확인하려고 시도합니다 (이것은 trust proxy
설정이 명시 적으로 활성화 된 경우에만 수행되지만).
req.connection.remoteAddress
에는 요청을 수행하는 클라이언트의 IP 주소가 포함됩니다. 프록시 서버의 경우 프록시의 IP 주소가되며 클라이언트가 대신 프록시가 요청을 전달하는 IP 주소가 아닙니다.
Express 서버로 요청을 전달하는 역방향 프록시를 사용하는 경우 req.ip
을 사용하고 trust proxy
을 사용하는 것이 가장 좋은 해결책입니다. 그렇지 않으면 평범한 req.ip
만 계속 수행됩니다. 사용자 IP를 얻을 수
가장 좋은 방법은 보안상의 이유로 (Cloudflare 같은) 서버 미들웨어 (또는 가장 일반적으로 사용되는 프록시)를 사용할 수 있기 때문에이 var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
같은 req.headers['x-forwarded-for'] || req.connection.remoteAddress;
그리고 당신은 req.connection.remoteAddress
를 사용하는 경우 매번 미들웨어 서버 IP 주소를 전송하지만 x-forwarded-for 헤더와 req.connection.remoteAddress
또는 req.ip
을 함께 사용할 수 있습니다. 아래 의견 req.ip || req.connection.remoteAddress
를 사용하는 최선의 방법에 언급 된 자세한 내용은
편집
을 읽을; 프록시없이 응용 프로그램을 사용하더라도 미래에는 프록시와 함께 사용할 수 있으며 위의 메서드를 사용하면 응용 프로그램을 변경하지 않고 사용할 수 있기 때문입니다.
- 1. 클라이언트의 컴퓨터에서 IP 주소를 얻는 방법은 무엇입니까?
- 2. IP 주소를 제한하는 가장 좋은 방법은 무엇입니까?
- 3. blazeDS에서 클라이언트의 IP 주소를 얻는 방법
- 4. SQL 데이터베이스에서 클라이언트의 IP 주소를 얻는 방법
- 5. 저의 주위에 클라이언트의 IP 주소를 얻는 방법
- 6. IP 주소에서 브로드 캐스트 주소를 얻는 가장 좋은 방법은 무엇입니까?
- 7. 다른 Facebook 사용자의 IP 주소를 얻는 가장 좋은 방법
- 8. TCP 반 연결을 생성하는 클라이언트의 IP 주소를 얻는 방법은 무엇입니까?
- 9. 원격 데스크톱 클라이언트의 IP 주소를 얻는 방법은 무엇입니까?
- 10. CometD에서 클라이언트의 프록시 IP 주소를 얻는 방법은 무엇입니까?
- 11. PROXY 프로토콜을 사용하여 클라이언트의 실제 IP 주소를 얻는 방법은 무엇입니까?
- 12. 내부 IP 주소를 얻는 방법?
- 13. 보안 클라이언트의 외부 IP 주소를 확인하는 방법
- 14. 클라이언트 IP 주소를 얻는 방법?
- 15. 클라이언트 IP 주소를 얻는 방법
- 16. 원격 데스크톱에 연결된 클라이언트의 IP 주소를 얻는 방법
- 17. 서버에서 내 CORBA 클라이언트의 IP 주소를 얻는 방법
- 18. 자바 스크립트를 사용하여 클라이언트의 IP 주소를 얻는 방법
- 19. 서브넷에서 각 IP 주소를 얻는 방법은 무엇입니까?
- 20. IP 주소를 얻는 방법?
- 21. android - 현재 주소를 얻는 가장 좋은 방법
- 22. iPhone에서 IP 주소를 얻는 방법
- 23. Amazon ELB 뒤에 클라이언트의 IP 주소를 확인하십시오.
- 24. 여기서 nginx는 클라이언트의 IP 주소를 저장합니까?
- 25. 연결을 재설정 한 클라이언트의 IP 주소를 검색하십시오.
- 26. vb.net을 사용하여 RDP 클라이언트의 IP 주소를 얻으십시오.
- 27. 서버에서 클라이언트의 IP 주소를 요청하는 중
- 28. 클라이언트의 IP 주소를 출력 파일에 표시 하시겠습니까?
- 29. 자바 서버에서 자바 클라이언트의 IP 주소를 얻으십시오.
- 30. 글로벌 IP 주소를 얻는 방법은 무엇입니까?
나는 프록시를 사용하지 않으므로 사용해야하는 프록시를 사용하지 않으면 나중에 사용할 프록시를 사용하고 있습니까? (만약 내가 방금 물었던 것에 맞도록 답을 편집 할 수 있다면, 같은 문제를 겪는 미래의 사람들을 도울 것입니다.) – guyforlowbro
@guyforlowbro, 명확성을 위해 업데이트. –
x-forwaded-for 헤더에 ip가 두 개 이상 포함될 수 있음을 이해합니다. (예를 들어, 익스프레스 앱이 프록시 뒤에있는 경우). 그래서 'req.ip'을 고수하는 것은 – lascort