返回空字节[]而不是MAC地址的方法

时间:2017-01-24 08:34:02

标签: c# .net

我在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

1 个答案:

答案 0 :(得分:3)

字节数组ToString方法返回类名而不是它的数据。 BitConverter.ToString()byte[]数据转换为字符串。

使用

BitConverter.ToString(networkAdapters.GetMacAddress(0));

而不是

networkAdapters.GetMacAddress(0).ToString()