我需要获取MAC address设备的Windows Mobile。是否可以在不使用OpenNetCF的情况下通过.NET Compact Framework进行此操作?解决方案是C#(Visual Studio 2008,一个智能设备项目)。
阅读 Read MAC Address from network adapter in .NET 后,我想使用 plinth 的示例,但设备上没有kernel32.dll。
是否还有另一种方法可以在.NET Compact Framework中获取MAC地址,或者如何替换以下方法:
[DllImport("Kernel32.dll", EntryPoint = "CopyMemory")]
private static extern void ByteArray_To_IPAdapterInfo(ref AdapterInfo dst, Byte[] src, int size);
[DllImport("Kernel32.dll", EntryPoint = "CopyMemory")]
private static extern void IntPtr_To_IPAdapterInfo(ref AdapterInfo dst, IntPtr src, int size);
答案 0 :(得分:0)
如果你想获得MAC地址,但不使用像OpenNETCF的SDF这样的库,那么你只需要在你自己的代码中做同样的事情。您需要P / Invoke GetAdaptersInfo
,如下所示:
[DllImport("iphlpapi.dll", SetLastError = true)]
public static extern int GetAdaptersInfo(byte[] pAdapterInfo, ref uint pOutBufLen);
您需要使用null
第一个参数调用它一次以获取大小,然后分配一个适当大小的字节数组并调用它。它将使用一组IP_ADAPTER_INFO
结构填充它,然后您可以为系统中的每个适配器进行解析。 Address
成员就是你所追求的MAC地址。