WinCE 讀取Mac位址實踐測試

2021-06-20 11:34:37 字數 2415 閱讀 3435

由於錯誤的理解wince 讀取mac位址就是在登錄檔中所以怎麼讀都讀不到資料,在此記錄測試過程。

1、通過登錄檔中讀取mac位址

using system;

using system.linq;

using system.collections.generic;

using system.text;

using smartdeviceprojectwtms;

using microsoft.win32;

using system.windows.forms;

namespace smartdeviceprojectwtms

; private registrykey reg = new registrykey[4];

public macreader()

//讀指定變數值

public string readvalue(hkey root, string subkey, string valuename)

}string strkey = subkey.getvalue(valuename).tostring();

subkey.close();

return strkey;

}catch(exception ex)

}//獲取mac位址

public static string getmacaddr()

return mac;}}

}

注:智慧型裝置中按照@「comm\dm9ce1\parms」位址讀取不到所謂的mac值,無論使用「networkaddress」或是「networkaddress0」,應該是找不到路徑所致。

2、通過

sendarp

獲取mac

位址

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.text;

using system.windows.forms;

using system.collections;

using system.diagnostics;

using system.runtime.interopservices;

using system.io;

using system.security.cryptography;

using system.net;

namespace smartdeviceprojectwtms

; private static int32 method_buffered = 0;

private static int32 file_any_access = 0;

private static int32 file_device_hal = 0x00000101;

private const int32 error_not_supported = 0x32;

private const int32 error_insufficient_buffer = 0x7a;

private static int32 ioctl_hal_get_deviceid = ((file_device_hal) << 16) | ((file_any_access) << 14) | ((21) << 2) | (method_buffered);

[dllimport("coredll.dll", setlasterror = true)]

private static extern bool kerneliocontrol(int32 dwiocontrolcode, intptr lpinbuf, int32 ninbufsize, byte lpoutbuf, int32 noutbufsize, ref int32 lpbytesreturned);

[dllimport("iphlpapi.dll", entrypoint = "sendarp")]

public static extern uint sendarp(uint destip, uint srcip, byte pmacaddr, ref uint phyaddrlen);

/// 獲取mac位址

public string getmac()

return mac;

}///獲取本機ip

public string getipaddress()

}}

此法則成功獲取到了mac位址。

讀取網絡卡的MAC位址

在實際的應用系統中,我們往往會需要在程式執行時獲取當前機器的網絡卡的mac位址,以便作為某種標識之用,如控制程式的合法性等。下文介紹如何用microsoft visualc 6.0開發這樣的程式。這裡採用的方法是通過windows 9x nt win2000中內建的netapi32.dll的功能來實...

C 讀取MAC位址方式

使用c 讀取計算機mac位址,如下為收集的集中方法。根據擷取ipconfig all命令的輸出流獲取網絡卡mac public static list string getmacbyipconfig line reader.readline 等待程式執行完退出程序 p.waitforexit p.c...

Linux下讀取預設MAC位址

mac media access control,介質訪問控制 計算機通過它來定義並識別網路裝置的位置。在嵌入式linux學習中不可避免也會遇到mac,本文主要描述了如何通過操作otp來讀取嵌入式linux裝置網絡卡中的mac位址!一 適用範圍 這裡主要介紹讀取網絡卡mac位址的方法,適用於easy...