我在C#
中遵循简单(简单)方法,该方法应返回所选network interface card (NIC)
的{{3}}:
public byte[] GetMacAddress(int adapterIndex)
{
NetworkInterface[] networkInterfaces = NetworkInterface.GetAllNetworkInterfaces();
if ((adapterIndex >= networkInterfaces.Length) || (adapterIndex < 0))
{
return new byte[6] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
}
else
{
return networkInterfaces[adapterIndex].GetPhysicalAddress().GetAddressBytes();
} // if
} // GetMacAddress
现在,方法是从Program.cs
(它的main
方法)调用的:
using System;
using Comms.NwStack.IpLayer.IpGateway.Ndis;
namespace NDISTester
{
class Program
{
static void Main(string[] args)
{
TCP_AdapterList networkAdapters = new TCP_AdapterList();
Console.WriteLine(networkAdapters.GetName(0) +
" " +
networkAdapters.GetMacAddress(0).ToString());
Console.ReadKey();
} // Main
} // class
} // namespace
这是输出:
Local Area Connection System.Byte[]
为什么我变空MAC Address
?
答案 0 :(得分:3)
字节数组ToString
方法返回类名而不是它的数据。 BitConverter.ToString()
将byte[]
数据转换为字符串。
使用
BitConverter.ToString(networkAdapters.GetMacAddress(0));
而不是
networkAdapters.GetMacAddress(0).ToString()