跨平台 C# MAC 地址获取:一种稳健的方法
检索计算机的 MAC 地址对于许多网络相关应用程序至关重要。 然而,在不同的操作系统和语言设置中获得一致的结果是一个巨大的挑战。本文提供了一个可靠且高效的 C# 解决方案。
卓越的解决方案
这种改进的方法提高了清晰度和可靠性:
<code class="language-csharp">string macAddress = ( from nic in NetworkInterface.GetAllNetworkInterfaces() where nic.OperationalStatus == OperationalStatus.Up select nic.GetPhysicalAddress().ToString() ).FirstOrDefault();</code>
此代码使用NetworkInterface.GetAllNetworkInterfaces()
来获取所有网络接口。它过滤活动接口,不包括环回适配器。然后提取第一个合适接口的 MAC 地址并将其分配给 macAddress
.
替代方法
为了获得更大的灵活性,请考虑以下替代方案:
<code class="language-csharp">string firstMacAddress = NetworkInterface .GetAllNetworkInterfaces() .Where(nic => nic.OperationalStatus == OperationalStatus.Up && nic.NetworkInterfaceType != NetworkInterfaceType.Loopback) .Select(nic => nic.GetPhysicalAddress().ToString()) .FirstOrDefault();</code>
此方法采用与之前的解决方案相同的过滤,但提供了更具适应性的选择标准。 例如,您可以根据连接速度或特定连接类型(例如以太网)对接口进行优先级排序。
部署说明
这些解决方案与 Windows XP、Vista、Windows 7 及更高版本兼容,无论系统语言如何。 但是,正确操作可能需要管理权限。 建议使用管理员权限运行应用程序以获得最佳功能。
以上是如何在不同操作系统上使用 C# 可靠地获取机器的 MAC 地址?的详细内容。更多信息请关注PHP中文网其他相关文章!