本文介绍了.NET Core 2.x如何获取当前活动的本地网络IPv4地址?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在其上运行WebService.就像我可以在cmd.exe > ipconfig
中得到的那样:
On which is running the WebService. Like the one I can get in cmd.exe > ipconfig
:
我想实现的是Kestrel的自动IP配置,例如:
What I would like to achieve is automatic IP configuration of Kestrel, like:
.UseKestrel(opts =>
{
opts.Listen(/*LocalIPv4ActiveAddress*/, 5000);
})
因此,我可以使用不同的活动网络接口(WiFi ||以太网)和不同的本地IP地址来切换我的开发机器.
So I can switch my development machines with different active network interfaces (WiFi || Ethernet) and different local network IP addresses.
推荐答案
您可以尝试执行以下操作:
You can try something like this:
// 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();
}
这篇关于.NET Core 2.x如何获取当前活动的本地网络IPv4地址?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!