2022年2月17日 • ☕️ 1 min read

dotnet coreプログラムでIPアドレスを取得するのに難しくないです。

Copy
var ipAddress = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();

しかし、Dockerの中に起動したら、上記の方法はサーバのローカルIPアドレスしか取得できません。本来のIPアドレスを取得するために、NGINXの設定が必要です。Pleskを例として設定してみましょう。

Pleskの設定

nginx.png

下記の設定をしておきましょう。

Copy
real_ip_header X-Forwarded-For;

nginx-settings.png

dotnet coreプログラムの設定

Copy
var ipAddress = Request.Headers["X-Forwarded-For"].FirstOrDefault() ?? Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();

ご参考までに。


関連投稿

C# .NetFrameworkのDI

2021年9月13日

ThunderMiracle

Blog part of ThunderMiracle.com