gpt4 book ai didi

asp.net-core - 如何在 asp core 3.1 中获取客户端 IP?

转载 作者:行者123 更新时间:2023-12-04 19:40:56 26 4
gpt4 key购买 nike

我将使用 _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString() 获取客户端 IP
但我得到了 127.0.0.1 或::1 。
我的网络服务器是 nginx,具有以下设置:

 location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
}
我的代码: _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString();这将返回 127.0.0.1 或::1
我将以下代码添加到配置方法:
    app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});

最佳答案

你的配置没问题。
你是从本地启动你的应用程序吗?如果是,127.0.0.1::1会好的。因为127.0.0.1::1是你的IP地址。
如果您已将应用程序部署到远程服务器,您将看不到 127.0.0.1 .
请注意,您必须使用 app.UseForwardedHeaders(...)在使用 IP 地址的中间件之前:

//...
// use it here
//...
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints();

关于asp.net-core - 如何在 asp core 3.1 中获取客户端 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62846484/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com