Compact Framework中的MAC地址

时间:2020-03-05 18:47:22  来源:igfitidea点击:

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

解决方案

回答

添加对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

回答

这是Google搜索" Compact Framework中的MAC地址"的前三个结果:

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

这些都没有帮助吗?

三分之二的人将OpenNETCF当作一种实现方法。

回答

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

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

我认为物理地址(返回为MAC地址)大约是调用后字节数组的索引400 408. 因此,如果我们不想使用OpenNETCF,则可以直接使用它(为什么?OpenNETCF的作用远不止于石头!)

精彩的P / Invoke.net在此处提供了完整的示例。

哦,正确回答问题:

only using the Compact Framework

你不能。 CF就是这样,如果我们想获得一些乐趣,请尝试使用套接字与超时同步发送数据。 :D

回答

如果可以访问注册表,请尝试在" LOCAL_MACHINE \ Comm \ PCI \ *** \ Parms \ MacAddress"下找到适配器的MAC地址。

这可能是一种快速且肮脏的解决方案,不涉及使用WMI或者OpenNETCF ...