dotnet coreプログラムでIPアドレスを取得するのに難しくないです。
var ipAddress = Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
しかし、Dockerの中に起動したら、上記の方法はサーバのローカルIPアドレスしか取得できません。本来のIPアドレスを取得するために、NGINXの設定が必要です。Pleskを例として設定してみましょう。
Pleskの設定
下記の設定をしておきましょう。
real_ip_header X-Forwarded-For;
dotnet coreプログラムの設定
var ipAddress = Request.Headers["X-Forwarded-For"].FirstOrDefault() ?? Request.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString();
ご参考までに。