[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-servlety-kak-poluchit-ip-adres-klienta-na-servere":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},540,"kak-poluchit-ip-adres-klienta-na-servere",13,"servlety","Сервлеты","🖧","Как получить IP адрес клиента на сервере","IP-адрес клиента можно получить через метод `getRemoteAddr()` объекта `HttpServletRequest`:\n\n```java\nString clientIP = request.getRemoteAddr();\n```\n\nОднако если запрос проходит через прокси-сервер, балансировщик нагрузки или CDN (что типично для production), `getRemoteAddr()` вернёт IP прокси, а не клиента. В таких случаях реальный IP клиента содержится в заголовке `X-Forwarded-For`:\n\n```java\nString clientIP = request.getHeader(\"X-Forwarded-For\");\nif (clientIP == null) {\n    clientIP = request.getRemoteAddr();\n}\n```\n\nЗаголовок `X-Forwarded-For` может содержать цепочку IP-адресов (`client, proxy1, proxy2`), где первый — реальный IP клиента. В Spring Boot для корректной обработки этих заголовков настраивается `server.forward-headers-strategy=NATIVE`.\n\n> **На собеседовании:** обязательно упомяните `X-Forwarded-For`. Ответ только про `getRemoteAddr()` показывает, что вы не работали с production-средами, где всегда есть reverse proxy.","","junior",[15],"servlets",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":20,"keywords":21,"schemaAnswer":20,"featuredSnippetReady":22},"Как получить IP адрес клиента на сервере — Gymterview","IP-адрес клиента можно получить через метод `getRemoteAddr()` объекта `HttpServletRequest`:",[15,13],true]