MAC-адрес в Compact Framework - PullRequest
       22

MAC-адрес в Compact Framework

3 голосов
/ 04 сентября 2008

Как я могу получить MAC-адрес, используя только компактный каркас?

Ответы [ 4 ]

5 голосов
/ 06 сентября 2008

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

2 голосов
/ 04 сентября 2008

Вот первые три попадания из поиска Google для "MAC-адреса в Compact Framework:

  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 как способ сделать это.

0 голосов
/ 08 января 2009

Если вы можете получить доступ к реестру, попробуйте найти MAC-адрес вашего адаптера в LOCAL_MACHINE\Comm\PCI\***\Parms\MacAddress.

Это может быть быстрое и грязное решение, которое не предполагает использования WMI или OpenNETCF ...

0 голосов
/ 04 сентября 2008

Добавьте ссылку на 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
...