0

我需要获取Windows Mobile设备的MAC 地址。是否可以在不使用 OpenNetCF 的情况下仅通过.NET Compact Framework执行此操作?该解决方案使用 C#(Visual Studio 2008,一个智能设备项目)。

从 .NET 中的网络适配器读取MAC 地址后,我想使用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);
4

1 回答 1

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 地址。

于 2012-07-06T14:13:55.283 回答