如何确定使用哪个适配器

本文关键字:适配器 何确定 | 更新日期: 2023-09-27 18:06:34

我需要弄清楚在创建连接时使用的是哪个适配器。换句话说,如果我的机器上有多个网卡(即无线,局域网等),哪个卡用于连接?

如果有人能告诉我正确的方向…

如何确定使用哪个适配器

In c#

foreach(var nic in NetworkInterface.GetAllNetworkInterfaces.Where(n => n.OperationalStatus == OperationStatus.UP)
{
    if(nic.GetIsNetworkAvailable())
    {
       //nic is attached to some form of network
    }
}
VB . net

ForEach nic in NetworkInterface.GetAllNetworkInterfaces.Where(Function(n) n.OperationalStatus = OperationStatus.UP)
    If nic.GetIsNetworkAvailable() Then
       //nic is attached to some form of network
    End If
Next

这将只测试连接到活动网络的活动工作网络接口。

为什么不用MAC地址呢?

也许你可以通过MAC地址映射它:

var nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (var nic in nics)
{
    if (nic.OperationalStatus == OperationalStatus.Up)
    {
        var mac = nic.GetPhysicalAddress().ToString();
        if (mac == "your:connections:mac:address")
        {
            /* ... */
        }
    }
}

"your:connections:mac:address"部分您可以通过使用LocalEndPoint的IP地址按照此方法计算。

如何使用c#获取IP地址的物理(MAC)地址?