3

如何仅使用紧凑框架获取 MAC 地址?

4

4 回答 4

5

1.4 的 OpenNETCF 代码从以下 P/Invoke 调用中获取信息:

    [DllImport ("iphlpapi.dll", SetLastError=true)]
    public static extern int GetAdaptersInfo( byte[] ip, ref int size );

我认为物理地址(返回为 MAC 地址)大约是调用后字节数组的索引 400 - 408。因此,如果您不想使用 OpenNETCF,则可以直接使用它(为什么?OpenNETCF 比石头更厉害!)

Wonderful P/Invoke.net在这里给出了一个完整的例子。

哦,要正确回答您的问题:

仅使用 Compact Framework

你不能。这就是 CF 的生活,如果您想要一些乐趣,请尝试使用超时同步的套接字发送数据。:D

于 2008-09-06T15:35:37.063 回答
2

以下是Google 搜索“Compact Framework 中的 MAC 地址”的前三个结果:

  1. http://arjunachith.blogspot.com/2007/08/retrieving-mac-address-in-compact.html
  2. http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=920417&SiteID=1
  3. http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=188787&SiteID=1

这些都没有帮助吗?

三分之二的人将OpenNETCF作为一种方法。

于 2008-09-03T23:27:47.783 回答
0

如果您可以访问注册表,请尝试在LOCAL_MACHINE\Comm\PCI\***\Parms\MacAddress.

它可能是一个快速而肮脏的解决方案,不涉及使用 WMI 或 OpenNETCF ...

于 2009-01-08T13:36:05.987 回答
-1

添加对 System.Management.dll 的引用并使用以下内容:

Dim mc As System.Management.ManagementClass
Dim mo As ManagementObject
mc = New ManagementClass("Win32_NetworkAdapterConfiguration")
Dim moc As ManagementObjectCollection = mc.GetInstances()
For Each mo In moc
    If mo.Item("IPEnabled") = True Then
        ListBox1.Items.Add("MAC address " & mo.Item("MacAddress").ToString())
    End If
Next
于 2008-09-03T23:26:27.083 回答