当前位置 : 主页 > 编程语言 > c语言 >

c# – .NET Core 2.x如何获取当前活动的本地网络IPv4地址?

来源:互联网 收集:自由互联 发布时间:2021-06-25
在哪个运行WebService.就像我可以在cmd.exe中获得的那个 IPCONFIG: 我想要实现的是Kestrel的自动IP配置,例如: .UseKestrel(opts = { opts.Listen(/*LocalIPv4ActiveAddress*/, 5000); }) 所以我可以用不同的有源
在哪个运行WebService.就像我可以在cmd.exe中获得的那个> IPCONFIG:

我想要实现的是Kestrel的自动IP配置,例如:

.UseKestrel(opts => 
    { 
        opts.Listen(/*LocalIPv4ActiveAddress*/, 5000);
    })

所以我可以用不同的有源网络接口(WiFi ||以太网)和不同的本地网络IP地址切换我的开发机器.

你可以尝试这样的事情:

// order interfaces by speed and filter out down and loopback
// take first of the remaining
var firstUpInterface = NetworkInterface.GetAllNetworkInterfaces()
    .OrderByDescending(c => c.Speed)
    .FirstOrDefault(c => c.NetworkInterfaceType != NetworkInterfaceType.Loopback && c.OperationalStatus == OperationalStatus.Up);
if (firstUpInterface != null) {
    var props = firstUpInterface.GetIPProperties();
    // get first IPV4 address assigned to this interface
    var firstIpV4Address = props.UnicastAddresses
        .Where(c => c.Address.AddressFamily == AddressFamily.InterNetwork)
        .Select(c => c.Address)
        .FirstOrDefault();
}
网友评论