Networking C#如何获取网络适配器指标?

Networking C#如何获取网络适配器指标?,networking,Networking,我想获取Windows中特定网络适配器的“度量”。如何使用C#代码实现这一点 我可以使用此代码获取所有网络适配器,但我不知道如何获取“Metric” foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) { //?? } 您可以调用返回接口度量的PowerShell cmdlet: PowerShell ps = Power

我想获取Windows中特定网络适配器的“度量”。如何使用C#代码实现这一点

我可以使用此代码获取所有网络适配器,但我不知道如何获取“Metric”

       foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
       {
               //??
       }
您可以调用返回接口度量的PowerShell cmdlet:

PowerShell ps = PowerShell.Create();
ps.AddCommand("Get-NetIPInterface");
// ps.AddParameter("AddressFamily", "IPv4"); 
Collection<PSObject> psObjects = ps.Invoke();

foreach (PSObject psObject in psObjects)
{    
    foreach (PSPropertyInfo propInfo in psObject.Properties)
    {
        // extract values...
    }
}
PowerShell ps=PowerShell.Create();
ps.AddCommand(“获取网络接口”);
//ps.AddParameter(“AddressFamily”、“IPv4”);
集合psObjects=ps.Invoke();
foreach(PSObject中的PSObject PSObject)
{    
foreach(psObject.Properties中的PSPropertyInfo-propInfo)
{
//提取值。。。
}
}
这可能包含您需要的所有信息,因此您不必使用
NetworkInterface.GetAllNetworkInterfaces()
。但是,如果仍要映射2个结果,则可以使用AddressFamily(IPv4/IPv6)和接口索引。 Get-NetIPInterface返回的“InterfaceIndex”和“AddressFamily”属性都是整数。可以将第二个值转换为枚举值。在NetworkInterface上,您可以通过
GetIPProperties().GetIPv4Properties().index
GetIPProperties().GetIPv6Properties().index
访问接口索引,具体取决于您感兴趣的地址族。

您可以调用返回接口度量的PowerShell cmdlet:

PowerShell ps = PowerShell.Create();
ps.AddCommand("Get-NetIPInterface");
// ps.AddParameter("AddressFamily", "IPv4"); 
Collection<PSObject> psObjects = ps.Invoke();

foreach (PSObject psObject in psObjects)
{    
    foreach (PSPropertyInfo propInfo in psObject.Properties)
    {
        // extract values...
    }
}
PowerShell ps=PowerShell.Create();
ps.AddCommand(“获取网络接口”);
//ps.AddParameter(“AddressFamily”、“IPv4”);
集合psObjects=ps.Invoke();
foreach(PSObject中的PSObject PSObject)
{    
foreach(psObject.Properties中的PSPropertyInfo-propInfo)
{
//提取值。。。
}
}
这可能包含您需要的所有信息,因此您不必使用
NetworkInterface.GetAllNetworkInterfaces()
。但是,如果仍要映射2个结果,则可以使用AddressFamily(IPv4/IPv6)和接口索引。
Get-NetIPInterface返回的“InterfaceIndex”和“AddressFamily”属性都是整数。可以将第二个值转换为枚举值。在NetworkInterface上,您可以通过
GetIPProperties().GetIPv4Properties().index
GetIPProperties().GetIPv6Properties().index
访问接口索引,具体取决于您感兴趣的地址族。

指标应用于路由,不是接口。@RonMaupin在Windows 10中,也有一个与接口相关联的度量,可以直接在接口设置中设置。如果我理解正确的话,这是一种对绑定顺序的替换。检查这个PInvoke代码,它通过WinApi检索度量。似乎NetworkInterface.GetAllNetworkInterfaces不返回该信息。度量值应用于路由,而不是接口。@RonMaupin在Windows 10中,也有一个与接口相关联的度量值,可以直接在接口设置中设置。如果我理解正确的话,这是一种对绑定顺序的替换。检查这个PInvoke代码,它通过WinApi检索度量。似乎NetworkInterface.GetAllNetworkInterfaces不返回该信息。