首页 新闻 会员 周边 捐助

ASP.NET Core 获取服务器本机 IP 地址的最简单方法

0
悬赏园豆:30 [已解决问题] 解决于 2020-01-18 14:22

请问 ASP.NET Core 中获取服务器本机 IP 地址的最简单方法是什么?

dudu的主页 dudu | 高人七级 | 园豆:29570
提问于:2020-01-17 21:39
< >
分享
最佳答案
0

目前采用的获取方法

var ip = HttpContext.Connection.LocalIpAddress.MapToIPv4()?.ToString();
dudu | 高人七级 |园豆:29570 | 2020-01-18 10:55
其他回答(2)
0
var hostIps = NetworkInterface
    .GetAllNetworkInterfaces()
    .Where(network => network.OperationalStatus == OperationalStatus.Up)
    .Select(network => network.GetIPProperties())
    .OrderByDescending(properties => properties.GatewayAddresses.Count)
    .SelectMany(properties => properties.UnicastAddresses)
    .Where(address => !IPAddress.IsLoopback(address.Address) && address.Address.AddressFamily == AddressFamily.InterNetwork)
    .ToArray();
收获园豆:20
czd890 | 园豆:14488 (专家六级) | 2020-01-17 21:58

这个太复杂了

支持(0) 反对(0) dudu | 园豆:29570 (高人七级) | 2020-01-18 10:53

@dudu: 使用场景不一样把,比如没有http请求的时候,怎么来的HttpContext.

支持(0) 反对(0) 何苗 | 园豆:173 (初学一级) | 2021-12-08 18:18
0

获取真实ip
1.添加Unicorn程序包
2.修改Program.cs,添加.UseRealIp("X-Forwarded-For"); //真实ip
3.HttpContext.Connection.RemoteIpAddress.ToString()

收获园豆:10
tenghao510 | 园豆:179 (初学一级) | 2020-01-18 10:38

不是客户端的 IP 地址,是服务器自己的 IP 地址

支持(0) 反对(0) dudu | 园豆:29570 (高人七级) | 2020-01-18 10:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册