ASP.Net核心检测真实客户端IP

时间:2017-03-02 14:57:22

标签: c# asp.net-core ip

我在IIS上安装了一个ASP.NET核心应用程序,该服务器位于路由器后面。我需要检测真实的客户端IP。从本地网络context.HttpContext.Connection.RemoteIpAddress返回正确的IP,但从外部始终是127.0.0.1

此外,我尝试查看本地提供X-Original-For的{​​{1}}标题,但外部没有任何内容。

我尝试了127.0.0.1https://stackoverflow.com/a/41450563/4801505)中间件,但是当我得到它时,UseForwardedHeadershttps://github.com/aspnet/Docs/issues/2384)已经使用了中间件,所以没有意义使用它两次。

那么,在我的情况下,我可以完成这件事吗?也许需要一些IIS配置?

1 个答案:

答案 0 :(得分:0)

使用外部链接获取IP地址。

我最终使用

 var httpClient = new HttpClient();
        var ip = await httpClient.GetStringAsync("https://api.ipify.org");

如果您使用的是C#以外的任何语言,请参阅网站ipify