一例だがコントローラーで以下のように取得し、
@GetMapping(value = "/dev/")
String index(Model model, HttpServletRequest request) {
model.addAttribute("remoteAddr", request.getRemoteAddr());
model.addAttribute("xForwardedFor", request.getHeader("X-Forwarded-For"));
return "dev/index";
}
テンプレートで以下のように表示できる。
<p>remoteAddrは [[${remoteAddr}]] です。</p>
<p>X-Forwarded-Forは [[${xForwardedFor}]] です。</p>
ローカル開発環境では、以下のように表示される。
remoteAddrは 0:0:0:0:0:0:0:1 です。
X-Forwarded-Forは です。
本番環境を想定したNginx+SpringBoot環境では、以下のように表示される。(この時点ではX-Forwarded-Forの値が表示されていない。)
remoteAddrは 127.0.0.1 です。
X-Forwarded-Forは です。
/etc/nginx/conf.d/https.conf で以下を追加すると
proxy_set_header X-forwarded-For $proxy_add_x_forwarded_for;
以下のように表示される。(X-Forwarded-Forの値も表示される。)
remoteAddrは 127.0.0.1 です。
X-Forwarded-Forは 203.0.113.1 です。
Spring Bootでリクエストを送ったクライアントのIPアドレスを取得してみた|ITエンジニアとして経験・学習したこと
https://www.purin-it.com/spring-boot-show-ipaddress
Java(Spring)でクライアントのIPアドレスを取得する方法 - yu_memorandumの日記
https://yu-memorandum.hatenablog.com/entry/2020/08/17/004251
こんばんは、X-Forwarded-For警察です - エムスリーテックブログ
https://www.m3tech.blog/entry/x-forwarded-for