我知道这已在不久前得到回答,但我只是想澄清一下,首选的解决方案通常是为 PhysicalAddress 类创建一个可重用的扩展方法。由于它是一个简单的数据类,并且很可能不会更改,因此出于可重用性的原因,这样做会更好。我将使用 Lorenzo 的示例,因为我最喜欢它,但是您可以使用任何适合您的例程。
public static class PhysicalAddressExtensions
{
public static string ToString(this PhysicalAddress address, string separator)
{
return string.Join(separator, address.GetAddressBytes()
.Select(x => x.ToString("X2")))
}
}
现在你可以像这样使用扩展方法:
NetworkInterface[] arr = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface item in arr)
{
PhysicalAddress mac = item.GetPhysicalAddress();
string stringFormatMac = mac.ToString(":");
}
请记住,PhysicalAddress.Parse仅接受 RAW 十六进制或破折号分隔值,以防您想将其解析回对象。因此,在解析之前剥离分隔符很重要。