【发布时间】:2017-11-22 01:09:10
【问题描述】:
我正在尝试以编程方式获取系统的 MAC 地址。我正在用 C# 编写,在 Windows 10 操作系统上使用 Visual Studios .NET 框架。我已经包含了 System.Net.NetworkInformation 命名空间(对于像我这样的其他 .NET 新手,必须手动将其添加到解决方案资源管理器下的“参考”部分,然后使用“使用”关键字)。要获取 MAC 地址,我使用以下代码:
try
{
var macAddr =
(
from nic in NetworkInterface.GetAllNetworkInterfaces()
where nic.OperationalStatus == OperationalStatus.Up
select nic.GetPhysicalAddress().ToString()
).FirstOrDefault();
Console.WriteLine("MAC address is: {0}", macAddr);
}
catch (Exception e)
{
Console.WriteLine("Could not collect MAC Address;\nERROR: {0}", e);
}
我期望的输出是:
正在尝试收集 MAC 地址...
MAC 地址为:XXXXXXXXXXXX
其中 XXX.... 是 12 个字符的 MAC 地址,或者:
正在尝试收集 MAC 地址...
无法收集 MAC 地址;
错误:[此处插入错误报告]
然而,我得到的是:
正在尝试收集 MAC 地址...
MAC地址是:
macAddr 变量似乎收集了一个空字符串。
所以...我的问题是,为什么我得到一个明显为空的字符串,而不是我期望的 12 个字符的 MAC 地址?
【问题讨论】:
-
产生的异常是什么?
-
没有产生异常。 try 语句成功,但没有打印 MAC 地址。
标签: c# mac-address