1

我的应用程序使用 Web 服务。我从请求的工作站控制,并为此发送 MAC-Address 所有方法的参数。但后来我开始实际测试应用程序,我发现工作站有很多网络适配器——以太网、无线、蓝牙。当我使用下一个代码获取 MAC 地址时:

var networkAdapters = NetworkInterface.GetAllNetworkInterfaces();
if (networkAdapters == null || networkAdapters.Length == 0)
    return string.Empty;

string address = string.Empty;

foreach (var adapter in networkAdapters)
{
    var a = adapter.GetPhysicalAddress();
    if (a != null && a.ToString() != string.Empty)
    {
        address = a.ToString();
        break;
    }
}
return address;

有时 Web 服务从工作站接收不同的 MAC 地址,但我希望始终只获得一个 MAC 地址。请帮我。

4

2 回答 2

0

您知道您的应用程序为 Web 服务使用的 IP 地址,对吗?恰好一个适配器将具有此 IP 地址。

Ypou 可以通过GetIPProperties>UnicastAddresses

于 2011-03-01T08:10:48.323 回答
0

如果我有两个不同的以太网卡——两个不同的 MAC 地址——哪个 MAC 地址是正确的地址?

回答这个问题是回答这个问题的根源。你必须创建算法来选择正确的选择——手头有很多工具可以让你更有辨别力:

  1. GetIsNetworkAvailable==true- 仅识别具有活动连接的接口
  2. Speed- 使您能够探测到最快的连接
  3. NetworkInterfaceType例如以太网

即使有这些规则,多个适配器仍可能匹配。例如,具有多个 NIC 绑定到同一个 LAN 的机器。只有您可以确定决胜局的规则。

于 2011-03-01T07:51:20.677 回答