# 说明
服务器环境:
- Asp.net 5
- IIS 7.4
- 非本地
在百度找来的方法比如说
1 | _accessor.HttpContext.Connection.RemoteIpAddress.ToString() |
之类的,实际写出来拿到的全部都是 ::1 .
去 StackOverflow 找了找,发现是 iis 拦截了请求并重发给了服务器,那这样获取到的肯定都是本地 ip. 同时也拿到了下面这个有效的方法
这里是网址 https://stackoverflow.com/a/41335701
# 安装依赖
Nuget 下载 Microsoft.AspNetCore.HttpOverrides
# 使用流程
- 在
Startup.cs的Configure函数内添加
1 | app.UseForwardedHeaders(new ForwardedHeadersOptions |
切记,需要在 app.UseAuthorization(); 之前
2. 使用以下代码获取 ip
1 | string ip = Request.HttpContext.Connection.RemoteIpAddress?.ToString(); |